Показать сообщение отдельно
  #4  
Старый 25.08.2011, 14:40
Velross Velross вне форума
Прохожий
 
Регистрация: 04.12.2009
Сообщения: 7
Репутация: 12
По умолчанию

Цитата:
Подтверждение и откат транзакций

Все операции над БД (включая команды 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;

Спасибо. Теперь всё работает правильно.
Ответить с цитированием