Чтобы при вставке в подчинённоую таблицу новых записей FK поле заполнялось данными из главной записи - поиграйся с парамтерами в options
Хочешь легко отделаться?
Или я плохо объяснил
Давай разберёмся только со вставкой в деталь.
Мастер-датасет такой (AutoUpdateOptions: "ID=GenID(GEN_MASTER_ID, 1)") :
- Код: Выделить всё
MASTER (ID, CAPTION)
--------------------
SQLSelect: select ID, CAPTION from MASTER
SQLInsert: insert into MASTER
values(:id, :caption)
Дитейл-датасет (AutoUpdateOptions: "ID=GenID(GEN_DETAIL_ID, 1)") :
- Код: Выделить всё
DETAIL (ID, MASTER_ID, CAPTION)
-------------------------------
SQLSelect: select d.* from DETAIL d
where d.MASTER_ID = :id <<< 1
SQLInsert: insert into DETAIL values
(:id, :master_id, :caption) <<< 2
<<< 1: Такой select работает для детали, если уже есть записи с правильным FK на Мастера.
<<< 2: Такой insert работает, если поле MASTER_ID вбивать руками (в гриде). А если оставлять пустым, то, естественно, не работает, потому что в Мастере нет поля MASTER_ID.
Но, я же не могу написать
- Код: Выделить всё
SQLInsert: insert into DETAIL values
(:id, :id, :caption)
Вот собственно я об этом и пытался сказать в 1-м посте на эту тему (что выкрутился на событиях).
PS. С Options естественно поигрался. Перебрал все 4 сочетания. С горя.