Я новичок в Делфи. У меня есть две таблицы TSQLTable (скажем, A и B), связанные с двумя TClientDataSet (скажем, cdsA и cdsB соответственно) двумя TDataSetProviders, два источника данных (dsA и dsB) завершают сценарий.
Пусть А будет главным, а Б — подробным.
B.MasterSource имеет значение dsA, а значение B.MasterFields относится к полю, которого нет в cdsA (но существует в запросе). Когда я запускаю приложение, я сначала открываю cdsA, а затем открываю cdsB. Что-то идет не так. DBGrid, который ссылается на источник данных dsA, показывает данные, DBGrid, который ссылается на dsB, ничего не показывает. Файл журнала SQLMonitor показывает, что запрос, реализованный в B, выполняется (простой select a, b, c from tableB
). Материал работает нормально, если я изменяю запрос и показываю поле «X» (select a, b, c, X from tableB
), где «X» — это поле, на которое ссылается свойство B.IndexFieldNames.
Почему DBGrid, который ссылается на dsB, не показывает запись B, связанную с текущей записью cdsA? Это работает, только если я укажу IndexFieldNames
в столбцах запроса? Что я пропустил? ТИА.