Показать сообщение отдельно
  #9  
Старый 03.09.2013, 10:53
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Freeman
получить значение ID
Код:
Master.UpdateBatch;
// использовать filterGroup, Для фильтрации только "новых" данных?
//т.к. запись может быть не одна: нужно пробежаться по всем новым запися, while not Detail.EOF ??
Detail.FieldByName('TicketID').AsInteger := Master.FieldDyName('ID').AsIntger;
Detail.UpdateBatch;

Цитата:
Сообщение от Freeman
Как понимаю, пакетный режим должен быть включен для подчиненного набора данных, а на мастере -- наоборот
Вот эту часть не понял совсем.

Хотите сказать
Код:
Master.LockType := ltOptimistic;
Но тогда документ будет попадать в БД без возможность отмены действий. Или я чего-то не понимаю.

Ещё мне неясны слова
Цитата:
Сообщение от Freeman
нужно в рамках одной транзакции
Что это значит?

BD в папке release (просто откомпилировать в release и всё само заведётся)

Обе таблицы (tMaster и tDetail находятся в режиме ltLockBatchOptimistic )
Собственно, что писать в коде кнопки @Сохранить изменения и какие дополнительные манипуляции необходимо произвести?

Проблема в том, что:
Код:
tDetail.MasterSource := dsDetail;

После того как
Код:
tMaster.UpdateBatch;
записи в Master присваивается ID, и Detail теряет связь, с Master, потому что у Detail записей в колнке 'MasterID' ничего ещё нет.

Нужен дополнительный tDetail_Temp, который не связан по MasterSource ?? и использовать его как временное хранилище? =\ попахивает "быдлокодом"
Вложения
Тип файла: rar TestBD.rar (120.6 Кбайт, 13 просмотров)
Ответить с цитированием