Методы BeginTrans, CommitTrans и RollbackTrans (ADO)
Область применения: Access 2013, Office 2013
Эти методы транзакций управляют обработкой транзакций в объекте Connection следующим образом:
BeginTrans — начинает новую транзакцию.
CommitTrans — сохраняет все изменения и завершает текущую транзакцию. Он также может запустить новую транзакцию.
RollbackTrans — отменяет все изменения, внесенные во время текущей транзакции, и завершает транзакцию. Он также может запустить новую транзакцию.
Синтаксис
Уровень = object. BeginTrans()
object. Begintrans
object. Committrans
object. RollbackTrans
Возвращаемое значение
BeginTrans можно вызвать как функцию, которая возвращает переменную Long , указывающую уровень вложенности транзакции.
Параметры
Параметр | Описание |
---|---|
object | Объект Connection . |
Connection
Используйте эти методы с объектом Connection , если требуется сохранить или отменить ряд изменений, внесенных в исходные данные в виде единого блока. Например, чтобы перевести деньги между счетами, вычитается сумма из одного счета и добавляется та же сумма к другому. В случае сбоя любого из обновлений учетные записи перестают балансировать. Внесение этих изменений в открытую транзакцию гарантирует, что все изменения или ни один из них не будут проходить.
Примечание.
Не все поставщики поддерживают транзакции. Убедитесь, что определяемое поставщиком свойство Transaction DDL отображается в коллекции Свойств объекта Connection, указывая, что поставщик поддерживает транзакции. Если поставщик не поддерживает транзакции, вызов одного из этих методов вернет ошибку.
После вызова метода BeginTrans поставщик больше не будет мгновенно фиксировать внесенные изменения, пока вы не вызовете CommitTrans или RollbackTrans для завершения транзакции.
Для поставщиков, поддерживающих вложенные транзакции, вызов метода BeginTrans в открытой транзакции запускает новую вложенную транзакцию. Возвращаемое значение указывает уровень вложенности: возвращаемое значение "1" означает, что вы открыли транзакцию верхнего уровня (то есть транзакция не вложена в другую транзакцию), "2" означает, что вы открыли транзакцию второго уровня (транзакцию, вложенную в транзакцию верхнего уровня) и т. д. Вызов CommitTrans или RollbackTrans влияет только на последнюю открытую транзакцию; Перед разрешением транзакций более высокого уровня необходимо закрыть или откатить текущую транзакцию.
Вызов метода CommitTrans сохраняет изменения, внесенные в открытую транзакцию при подключении, и завершает транзакцию. Вызов метода RollbackTrans отменяет все изменения, внесенные в открытой транзакции, и завершает транзакцию. Вызов любого из методов при отсутствии открытой транзакции приводит к ошибке.
В зависимости от свойства Attributes объекта Connection вызов методов CommitTrans или RollbackTrans может автоматически запустить новую транзакцию. Если для свойства Attributes задано значение adXactCommitRetaining, поставщик автоматически запускает новую транзакцию после вызова CommitTrans . Если для свойства Attributes задано значение adXactAbortRetaining, поставщик автоматически запускает новую транзакцию после вызова RollbackTrans .
Удаленная служба данных
Методы BeginTrans, CommitTrans и RollbackTrans недоступны для объекта Connection на стороне клиента.