В компонентах ADO работа с транзакциями осуществляется через компонент TADOConnection.
Тип транзакции устанавливается в свойстве IsolationLevel одной из следующих констант:
IlUnspecified |
Сервер будет использовать лучший, по его мнению, тип изоляции. |
IlChaos |
Транзакции с более высоким уровнем изоляции не могут изменять данные измененные, но не подтвержденные в текущей транзакции. |
IlReadUncommitted |
Чтение данных измененных в не подтвержденных транзакций. То есть изменения видны сразу после того как другая транзакция передала их на сервер. |
IlBrowse |
То же самое что и IlReadUncommitted |
IlReadCommitted |
Чтение данных измененных подтвержденными транзакциями. То есть изменение данных будет видимо после выполнения Commit в другой транзакции. |
IlCursorStability |
То же самое что и IlCursorStability. |
IlRepeatableRead |
Изменения, сделанные другими транзакциями не видимы, но при выполнении перезапроса они транзакция может получать новый набор данных. |
IlIsolated |
Транзакция не видит изменений данных произведенных другими транзакциями. |
IlSerializable |
То же самое что и IlIsolated. |
Обратите внимание на то, что не все типы провайдеров данных поддерживают все типы изоляции или работу с транзакциями.
Свойство Attributes устанавливает открывать ли новую транзакцию автоматически
xaCommitRetaining – при подтверждении транзакции
xaAbortRetaining – при отмене транзакции
Так же у компонента TADOConnection есть три метода для работы с транзакциями:
BeginTrans Начинает транзакцию
CommitTrans Подтверждает сделанные изменения
RollbackTrans Откатывает транзакцию.