Методы BeginTrans, CommitTrans и RollbackTrans (ADO)
Эти методы транзакций управляют обработкой транзакций в объекте подключения следующим образом:
BeginTrans начинает новую транзакцию.
CommitTrans сохраняет изменения и завершает текущую транзакцию. Она также может запустить новую транзакцию.
RollbackTrans Отменяет любые изменения, внесенные во время текущей транзакции, и завершает транзакцию. Она также может запустить новую транзакцию.
Синтаксис
level = object.BeginTrans()
object.BeginTrans
object.CommitTrans
object.RollbackTrans
Возвращаемое значение
BeginTrans можно вызывать как функцию, которая возвращает переменную Long, указывающую уровень вложенности транзакции.
Параметры
объекта
Объект Connection.
Связь
Используйте эти методы с объектом connection, если требуется сохранить или отменить ряд изменений, внесенных в исходные данные в виде одной единицы. Например, чтобы передать деньги между счетами, вычитаете сумму из одной и добавьте ту же сумму в другую. Если обновление завершается ошибкой, учетные записи больше не балансирует. Внесение этих изменений в открытую транзакцию гарантирует, что все или ни один из изменений не проходит.
Заметка
Не все поставщики поддерживают транзакции. Убедитесь, что определяемое поставщиком свойство "транзакций DDL" отображается в коллекции свойств объекта connection, указывающее, что поставщик поддерживает транзакции. Если поставщик не поддерживает транзакции, вызов одного из этих методов вернет ошибку.
После вызова метода BeginTrans поставщик больше не будет мгновенно фиксировать изменения, внесенные до тех пор, пока не вызовете CommitTrans или RollbackTrans, чтобы завершить транзакцию.
Для поставщиков, поддерживающих вложенные транзакции, вызов метода BeginTrans в открытой транзакции запускает новую вложенную транзакцию. Возвращаемое значение указывает на уровень вложения: возвращаемое значение "1" указывает, что вы открыли транзакцию верхнего уровня (то есть транзакцию не вложенную в другую транзакцию), "2" указывает, что вы открыли транзакцию второго уровня (транзакцию, вложенную в транзакцию верхнего уровня), и т. д. Вызов CommitTrans или RollbackTrans влияет только на последнюю открытую транзакцию; Перед разрешением любых транзакций более высокого уровня необходимо закрыть или откатить текущую транзакцию.
Вызов метода CommitTrans сохраняет изменения, внесенные в открытую транзакцию в соединении, и завершает транзакцию. Вызов метода RollbackTrans изменяет все изменения, внесенные в открытую транзакцию, и завершает транзакцию. Вызов любого метода при отсутствии открытой транзакции создает ошибку.
В зависимости от свойства атрибутов объекта Connection, вызов методов CommitTrans или RollbackTrans может автоматически запустить новую транзакцию. Если свойству атрибутов присвоено значение adXactCommitRetaining, поставщик автоматически запускает новую транзакцию после вызова CommitTrans. Если для свойства атрибутов задано значение adXactAbortRetaining, поставщик автоматически запускает новую транзакцию после вызова RollbackTrans.
Удаленная служба данных
Методы beginTrans BeginTrans, CommitTransи методы RollbackTrans не доступны в объекте подключения на стороне клиента.
Применимо к
объекта подключения (ADO)
См. также
Методы BeginTrans, CommitTrans и RollbackTrans (VB)
BeginTrans, CommitTrans и RollbackTrans Methods Example (VC++)
свойство атрибутов (ADO)