Страница 1 из 1

FIB Plus - mster-detail (помогите pls)

Добавлено: 01 авг 2006, 20:23
SV
Проблема в следующем:

Есть DataSet - master и DataSet - detail.
В Dataset-detail заполняю свойство DataSource (указываю мастера) и в запросе на Insert пишу INSERT INTO Dataset-detail (...) VALUES (...,:"MAS_ID",...) ,т.е. хочу чтобы при добавлении записи в Dataset-detail зависимое поле автоматически заполнялось значением ID DataSet - master.

НЕ РАБОТАЕТ!!! выдает ошибку, что данное поле null.

Помогите пожалуйста! Не пойму в чем проблема.

Добавлено: 01 авг 2006, 20:44
Merlin
И работать не будет. Патамушта хотеть-то можно чего угодно, но нет такого закона природы, что в детальный датасет вставлять можно запись только с MAS_ID равным текущему ID в другом датасете, будь он хоть трижды мастером, а есть такой закон природы, что вставлять можно чего угодно. Заполни его перед Post ручками.

Добавлено: 01 авг 2006, 23:21
Klyk
А ID в мастере в какой момент заполняется? ты уверен что он не null?
и это.. попробуй перед Post у detail выполинть Post мастеру...

Добавлено: 01 авг 2006, 23:46
SV
мастеру post делается вначале - не помогает.
А когда я заполняю зависимое поле вручную происходит ошибка на FOREIGN KEY ( DataSet-detail - имеет FOREIGN KEY в котором описано каскадное удаление). Если FOREIGN KEY удаляю, то зависмое поле можно заполнить вручную.
В общем непонятно все это.

Добавлено: 02 авг 2006, 12:28
CyberMax
Что тут непонятного. Запись мастера должна быть закоммичена до вставки детали. Например, вставляешь запись мастера. Подтверждаешь транзакцию. Только после этого можешь ссылаться на эту запись.

Добавлено: 02 авг 2006, 18:40
SV
Спасибо! все заработало.

Добавлено: 02 авг 2006, 23:13
Klyk
SV писал(а):Спасибо! все заработало.
А зачем ты мастера и деталь повесил на разные транзакции?