Компонент TADOconnection позволяет выполнять транзакции. Методы
function BeginTrans: Integer;
procedure CommitTrans;
procedure RollbackTrans;
обеспечивают начало, фиксацию и откат транзакции соответственно. Методы-обработчики
TBeginTransCompleteEvent = procedure(Connection: TADOConnection;
TransactionLevel: Integer;
const Error: Error;
var EventStatus:
TEventStatus) of object;
property OnBeginTransComplete: TBeginTransCompleteEvent;
TConnectErrorEvent = procedure(Connection: TADOConnection;
Error: Error;
var EventStatus: TEventStatus) of object;
property OnCornmitTransComplete: TConnectErrorEvent;
вызываются после начала и фиксации транзакции. Свойство
type TIsolationLevel = (ilUnspecified, ilChaos, ilReadUncommitted, ilBrowse, ilCursorStability, ilReadCorranitted, ilRepeatableRead, ilSerializable, illsolated);
property IsolationLevel: TIsolationLevel;
позволяет задать уровень изоляции транзакции:
Свойство
TXactAttribute = (xaCommitRetaining, xaAbortRetaining); property Attributes: TXactAttributes;
задает способ управления транзакциями при их фиксации и откате:
Управление транзакциями в OLE DB реализовано на двух уровнях. Во-первых, всеми необходимыми методами обладает объект сессии. Он имеет интерфейсы ITransaction, ITransactionJoin, ITransactionLocal, ITransactionObject.
Внутри сессии транзакция управляется интерфейсами ITransactionLocal, ItransactionSC, ITransaction и их методами StartTransaction, Commit, Rollback.
Во-вторых, для объекта сессии можно создать объект транзакции при помощи метода
function GetTransactionObject(ulTransactionLevel: UINT; out ppTransactionObject: ITransaction): HResult; stdcall;
интерфейса ITransactionObject, который возвращает ссылку на интерфейс объекта-транзакции.
Содержание раздела