Объект ошибок ADO. Транзакции.
Все ошибки времени выполнения, возникающие при открытом соединении, сохраняются в специальном объекте ADO, инкапсулирующем коллекцию сообщений об ошибках.
Доступ к объекту возможен через свойство:
property Errors: Errors;
Подробнее об объекте ошибок ADO см. ниже.
Транзакции
Компонент 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;
…позволяет задать уровень изоляции транзакции:
- ilUnspecified – уровень изоляции не задается;
- ilchaos – изменения более защищенных транзакций не перезаписываются данной транзакцией;
- ilReadUncommitted – незафиксированные изменения других транзакций видимы;
- ilBrowse – незафиксированные изменения других транзакций видимы;
- ilCursorStability – изменения других транзакций видимы только после фиксации;
- ilReadCommitted – изменения других транзакций видимы только после фиксации;
- ilRepeatableRead – изменения других транзакций не видимы, но доступны при обновлении данных;
- iSerializable – транзакция выполняется изолированно от других транзакций;
- ilisolated – транзакция выполняется изолированно от других транзакций.
Свойство:
TXactAttribute = (xaCommitRetaining, xaAbortRetaining); property Attributes: TXactAttributes;
…задает способ управления транзакциями при их фиксации и откате:
- xaCommitRetaining – после фиксации очередной транзакции автоматически начинается выполнение новой;
- xaAbortRetaining – после отката очередной транзакции автоматически начинается выполнение новой.