![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
К SQL-Server через ADO
Alex112 © (2009-04-05 23:27:00)Пытаюсь работать с SQL-Server, используя ADO. В свойстве Command Text компонента ADODataset пишу:
select * from Table1 t1, Table2 t2
where t2.Table1_ID = t1.ID
Связываю ADODataset через DataSource c DBGrid. Поле ID в Table1 автоинкрементное. Задаю в сетке значения полей и делаю Post. Получаю исключение, говорящее о том, что поле t2.Table1_ID имеет значение null. Как это сделать по-человечески, без лишних телодвиженией?
Спасибо.
ЮЮ (2009-04-06 12:08:00) [1]
> Расстрелять из пушки за такое.
Table2.Table1_ID - зато никакое шифрование не нужно с такими именованиями сущностей и атрибутов :)
Anatoly Podgoretsky (2009-04-06 12:08:00) [2]
> Получаю исключение, говорящее о том, что поле t2.Table1_ID
> имеет значение null.
Не верю
Ega23 (2009-04-06 12:03:00) [3]
select * from Table1 t1, Table2 t2
Расстрелять из пушки за такое.
ЮЮ (2009-04-06 12:02:00) [4]>Поле ID в Table1 автоинкрементное.
А в Table2 Table1_ID ключевое поле? Т.е. связь 1..0(1) ?
Попробуй так
select *
from
Table1 t1
LEFT JOIN Table2 t2 ON t2.Table1_ID = t1.ID
>Как это сделать по-человечески, без лишних телодвиженией?
В TDbGrid "по-человечески" сложновато работать с двумя связанными таблицами.
И. Павел (2009-04-06 08:18:00) [5]select * from Table1 t1, Table2 t2
where isnull(t2.Table1_ID, 0) = t1.ID