Компонент TIBTransaction
Для компонента транзакции можно настроить ее автоматическое завершение при закрытии последнего открытого компонента, инкапсулирующего набор данных, связанного с тем же соединением, что и транзакция.
Для этого свойство:
type TAutoStopAction = (saNone, saRollback, saCoramit, saRollbackRetaining, saCommitRetaining); property AutoStopAction: TAutoStopAction;
…не должно иметь значение saNone.
Остальные значения свойства выполняют следующие действия:
- saRollback – откат транзакции;
- saCommit – фиксация транзакции;
- saRollbackRetaining – отмена изменений без завершения транзакции (для сервера InterBase 6.0);
- saCommitRetaining – фиксация изменений без завершения транзакции (для сервера InterBase 6.0).
Метод:
procedure CheckAutoStop;
…выполняет действие, предусмотренное текущим значением свойства AutoStopAction.
Диагностика состояния транзакции во время выполнения осуществляется группой специальных методов. В случае отрицательного результата все они генерируют исключение EiBClientError.
Метод:
procedure CheckDatabasesInList;
…проверяет, имеются ли в списке Databases связанные соединения. Метод:
procedure ChecklnTransaction;
…проверяет, открыта ли в данный момент транзакция. Метод:
procedure CheckNotlnTransaction;
…проверяет, закрыта ли в данный момент транзакция.
Единственный метод-обработчик транзакции:
property OnldleTimer: TNotifyEvent;
…вызывается по истечении срока ожидания выполнения транзакции, заданного свойством IdleTimer.