Я использую Delphi7, драйвер Devart dbExpress 4.70.
Я отбрасываю две таблицы TSQL (назовите их A
и B
), два TDataSetProvider (dspA
и dspB
), два TClientDataSets (cdsA
и cdsB
), два TDataSources (dsA
и dsB
) и две сетки DBG (gridA
и gridB
).Все настроено нормально.Если для cdsA.Active
установлено значение true, я вижу данные в gridA
.То же самое для cdsB
.
Теперь я хочу реализовать соотношение
A JOIN B ON a = b.
Поле a
- это истинный ключ A
, указанный как B
'Поле b
и b
также является первичным ключом B
.Я установил вещи следующим образом (я использую графические инструменты):
cdsB.MasterSource := dsA;
cdsB.MasterFields := a;
cdsB.IndexFieldNames := b;
Когда я делаю cdsB.Open
, я получил эту ошибку:
ORA-01036: недопустимое имя переменной/ number ".
Поле a
значение всегда null
в таблице A (нет данных). TSQLMonitor сообщает о следующих запросах: Execute: select * from A
...
Execute: select * from ENTI where (b is NULL)
:1 (Number,IN) = <NULL>
Что я пропустил и как это можно исправить?