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

Непонятная ошибка при постинге

Добавлено: 28 фев 2006, 20:38
sts
Вот уперся рогами-помогите, кто знает... Короче есть 2 таблицы со сведениями о клиентах-одна с основной инфой (ФИО и тп) а другая - с кучей дополнительной. Для удобства хочу связать их как мастер-деталь. Ограничение вторичного ключа на уровне базы не прописывалось, значение втор.ключа вставляется во вторую таблицу по IBDataset2.BeforePost. В обоих - первичные ключи с автоинкрементом (через GeneratorField/On New Record). Постинг сделан по нажатию одной кнопки(сначала-1-й потом 2-й таблицы).
И все замечательно работает, пока не ввожу связь мастер-деталь(указ. 1-ю датасурсу для 2-й IBDataset, в SelectSQL добавил "where FKey=:MKey". Вызываю для обоих таблиц метод APPEND, ввожу данные в DBEditы, и при нажатии на кнопку "Post" вылазит "IBDataset2 not in edit or insert mode" !
Вопрос: а при чем тут edit or insert mode? В какой момент Датасет2 вылез из режима вставки? P.S. Просьба не учить, как это обойти (уже сделано), а ПОЧЕМУ так (похоже я что-то недопонимаю)?

Добавлено: 01 мар 2006, 00:28
LDF
вторая транз. не видит изменений первой. а первая только начала и не подтвердила данные (создала ИД-MKey).
Решение же в том было, что сначала постится первая, а потом вносятся вторая? Так?

Добавлено: 01 мар 2006, 09:43
sts
LDF писал(а):вторая транз. не видит изменений первой. а первая только начала и не подтвердила данные (создала ИД-MKey).
Решение же в том было, что сначала постится первая, а потом вносятся вторая? Так?
--------
Да нет, транзакция там одна на всех, и таблица в-общем одна по-смыслу, я ее разбил на 2 для удобства просмотра данных.
IBDataset1.Append;IBDataset2.Append;
<Заполняются данные в обоих таблицах>
IBDataset1.Post;IBDataset2.Post;
-и все работает, пока не добавлю связь мастер-деталь. Вот тогда и кричит, что второй датасет не в режиме изменений (так оно и есть- если перед вторым постингом тупо добавить Dataset2.Edit, то все нормально) Вопрос в том , где он вылез из dsInsert и почему?

Добавлено: 01 мар 2006, 13:28
Dimitry Sibiryakov
Где? В момент IBDataset1.Post.
Почему? Из-за связи. Запись в мастере сменилась -> детайл обновился, попутно запостив изменения.
Кто такую кривизну написал? Не знаю, Джеф, наверное...

Добавлено: 02 мар 2006, 09:49
sts
Dimitry Sibiryakov писал(а):Где? В момент IBDataset1.Post.
Почему? Из-за связи. Запись в мастере сменилась -> детайл обновился, попутно запостив изменения.
Кто такую кривизну написал? Не знаю, Джеф, наверное...
Значит, полноценная связь М-Д включается просто ссылкой на мастер-датасурсу и всё? (Ну да, в IB -я полный чайник, вот пытаюсь разобраться). Кстати, подскажите в каком инетмагазине можно заказать ту самую книжку Хелен по FB-не хватает инфы жутко, особенно на русском:)

Добавлено: 02 мар 2006, 09:55
kdv
в каком инетмагазине можно заказать ту самую книжку
books.ru, bolero.ru
выбери по цене, обязательно учитывай цену доставки. на ozon.ru вроде дороже.