Откат транзакции не работает с компонентами TpFIB
Я использую Delphi 2010 с FIB Components
лайк TpFIBDataset
, TpFIBTransaction
а также TpFIBDataset
с Firebird
база данных.
Я уже установил свойство 'AutoCommit' TpFIBDataset в 'Ложь', тогда также, когда я выполняю нижеприведенный оператор в try..finally
заблокировать и откатить данные транзакции по-прежнему публикуются.
Код:
FIBDataset.Post;
Ниже приведен пример кода.
Код:
try
FIBDatabase.StartTransaction;
....
Block of Code;
...
finally
if saveALL then
FIBDatabase.CommitRetaining
else
FIBDatabase.RollbackRetaining;
end;
1 ответ
Транзакция с набором данных также должна быть проверена и изменена.
FIBDataset.AutoCommit := false;
Вам также необходимо закрыть запрос. В этом случае
FIBDataset.Close;
FIBDatabase.Rollback;
РЕДАКТИРОВАТЬ
Я бы также посоветовал вам выделить один компонент транзакции для всех наборов данных (а не для базы данных). И используйте методы start, commit, rollback компонента транзакции. Кроме того, вы должны назначить компонент транзакции перед выполнением каких-либо операций.