Delphi для профессионалов



 

Транзакции


Компонент 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;

позволяет задать уровень изоляции транзакции:

  •  IlUnspecif led — уровень изоляции не задается;
  • Iichaos — изменения более защищенных транзакций не перезаписываются данной транзакцией;
  • IlReadUncommitted — незафиксированные изменения других транзакций видимы;
  •  IlBrowse — незафиксированные изменения других транзакций видимы;
  • IlCursorStability — изменения других транзакций видимы только после фиксации;
  •  IlReadCommitted — изменения других транзакций видимы только после фиксации;
  • IlRepeatableRead — изменения других транзакций не видимы, но доступны при обновлении данных;
  • ISerializable — транзакция выполняется изолированно от других транзакций;
  • Ilisolated — транзакция выполняется изолированно от других транзакций.

Свойство

TXactAttribute = (xaCommitRetaining, xaAbortRetaining); property Attributes: TXactAttributes;

задает способ управления транзакциями при их фиксации и откате:

  •  xaCommitRetaining — после фиксации очередной транзакции автоматически начинается выполнение новой;
  •  xaAbortRetaining — после отката очередной транзакции автоматически начинается выполнение новой.