logo
ВОПРОСЫ

Работа с транзакциями

В компонентах ADO работа с транзакциями осуществляется через компонент TADOConnection.

Тип транзакции устанавливается в свойстве IsolationLevel одной из следующих констант:

 

IlUnspecified

Сервер будет использовать лучший, по его мнению, тип изоляции.

IlChaos

 Транзакции с более высоким уровнем изоляции не могут изменять данные измененные, но не подтвержденные в текущей транзакции.

IlReadUncommitted

Чтение данных измененных в не подтвержденных транзакций. То есть изменения видны сразу после того как другая транзакция передала их на сервер.

IlBrowse

То же самое что и IlReadUncommitted

IlReadCommitted

Чтение данных измененных подтвержденными транзакциями. То есть изменение данных будет видимо после выполнения Commit в другой транзакции.

IlCursorStability

То же самое что и IlCursorStability.

IlRepeatableRead

Изменения, сделанные другими транзакциями не видимы, но при выполнении перезапроса они транзакция может получать новый набор данных.

IlIsolated

Транзакция не видит изменений данных произведенных другими транзакциями.

IlSerializable

То же самое что и IlIsolated.

 

Обратите внимание на то, что не все типы провайдеров данных поддерживают все типы изоляции или работу с транзакциями.

 

Свойство Attributes устанавливает открывать ли новую транзакцию автоматически

Свойство xaCommitRetaining – при подтверждении транзакции

Свойство xaAbortRetaining – при отмене транзакции

 

Так же у компонента TADOConnection есть три метода для работы с транзакциями:

 

BeginTrans           Начинает транзакцию

CommitTrans       Подтверждает сделанные изменения

RollbackTrans     Откатывает транзакцию.