Цитата:
Подтверждение и откат транзакций
Все операции над БД (включая команды DDL) в IB выполняются в контексте какой-либо транзакции. Транзакции могут быть явными и неявными. Неявная транзакция имеет параметры READ WRITE WAIT SNAPSHOT, начинается при выполнении любой команды и продолжается до команды явного завершения транзакции (COMMIT, ROLLBACK). Для выполнения транзакции с другими параметрами, а также для одновременного выполнения нескольких транзакций с одного клиента сервер IB позволяет стартовать явные транзакции.
Для подтверждения транзакции используются команды COMMIT (подтверждение транзакции и ее завершение), ROLLBACK (отказ от изменений и завершение транзакции) и COMMIT RETAINING (подтверждение транзакции с сохранением контекста). Команда ROLLBACK RETAINING должна появиться в IB 6.0
COMMIT RETAINING фиксирует транзакцию, но сразу же после этого стартует новую с теми же параметрами, что и у завершенной транзакции и сохраняя тот же курсор. Таким образом, клиентской программе не требуется заново создавать курсор и выполнять FETCH.
|
Цитата:
Сообщение от Velross
Сохраняю запись:
Код:
if DataModul1.IBTable1.Modified then
begin
DataModul1.IBTable1.Post;
DataModul1.IBTransaction1.CommitRetaining;
end;
|
Спасибо. Теперь всё работает правильно.