Я использую соединение master-detail для отображения списка назначенных столбцов таблицы данных. Кроме того, я хочу показать вторую сетку с неназначенными столбцами подробностей
Пример
Мастер-таблица t_human: idHU, nameHU (как Джон, Оскар, ...)
Деталь-таблица t_property: idPO, namePO (как мужчина, женщина, светлые волосы, борода, голубые глаза ...)
Таблица соединения t_hu_po: idHU, idPO
-> Джон - мужчина, светлые волосы
-> Оскар - кобель, голубые глаза, борода
Когда я выбираю строку основной таблицы, я хочу показать назначенные свойства, а также не назначенные. Основная деталь для назначенных свойств работает нормально.
Но для неназначенных свойств не работает.
Detail-SQL:
select p.idPO, p.namePO
from t_property p
where not exists (select * from t_hu_po hp where hp.idHU = :idHU and hp.idPO = p.idPO)
Мастер-SQL:
select idHU, nameHU from human
Когда я пытаюсь выбрать подробное поле в компоненте delphi (Devart, SDAC, TMSQuery), оно показывает только поля для p.idPO и p.namePO. Параметр: idHU в инструкции настроен как параметр для запроса в компоненте. Когда я вручную набираю idHU
в свойстве DetailFields набора данных (TMSQuery), я получаю Неверное имя столбца 'idHU' .. из delphi при активации запроса.
Кто-нибудь знает лучшее решение, чем делать это с событиями для datachange и вручную устанавливать параметр детали и обновлять запрос детали.
Я думал, что master-detail будет делать то же самое, но только в фоновом режиме, так что мне не придется его кодировать.
Спасибо
Stephan