Методы BeginTrans, CommitTrans и RollbackTrans (ADO)BeginTrans, CommitTrans, and RollbackTrans Methods (ADO)

Эти методы транзакций управляют обработкой транзакций в объекте соединения следующим образом:These transaction methods manage transaction processing within a Connection object as follows:

  • Примеры BeginTrans Начинает новую транзакцию.BeginTrans Begins a new transaction.

  • CommitTrans Сохраняет все изменения и завершает текущую транзакцию.CommitTrans Saves any changes and ends the current transaction. Она также может начать новую транзакцию.It may also start a new transaction.

  • RollbackTrans Отменяет все изменения, внесенные во время текущей транзакции, и завершает транзакцию.RollbackTrans Cancels any changes made during the current transaction and ends the transaction. Она также может начать новую транзакцию.It may also start a new transaction.

СинтаксисSyntax

  
level = object.BeginTrans()  
object.BeginTrans  
object.CommitTrans  
object.RollbackTrans  

Возвращаемое значениеReturn Value

Примеры BeginTrans может вызываться как функция, возвращающая переменную типа Long , указывающую уровень вложенности транзакции.BeginTrans can be called as a function that returns a Long variable indicating the nesting level of the transaction.

ПараметрыParameters

objectobject
Объект соединения .A Connection object.

ПодключениеConnection

Используйте эти методы с объектом Connection , если нужно сохранить или отменить ряд изменений, внесенных в исходные данные в виде одного элемента.Use these methods with a Connection object when you want to save or cancel a series of changes made to the source data as a single unit. Например, чтобы переносить деньги между учетными записями, можно вычесть сумму из единицы и добавить ту же сумму в другую.For example, to transfer money between accounts, you subtract an amount from one and add the same amount to the other. В случае сбоя одного из обновлений учетные записи больше не будут сбалансированы.If either update fails, the accounts no longer balance. Внесение этих изменений в открытой транзакции гарантирует, что все изменения не проходят.Making these changes within an open transaction ensures that either all or none of the changes go through.

Примечание

Не все поставщики поддерживают транзакции.Not all providers support transactions. Убедитесь, что определяемое поставщиком свойство "Transaction DDL" отображается в коллекции свойств объекта Connection , указывая, что поставщик поддерживает транзакции.Verify that the provider-defined property "Transaction DDL" appears in the Connection object's Properties collection, indicating that the provider supports transactions. Если поставщик не поддерживает транзакции, вызов одного из этих методов возвратит ошибку.If the provider does not support transactions, calling one of these methods will return an error.

После вызова метода примеры BeginTrans поставщик больше не будет мгновенно фиксировать внесенные изменения, пока вы не вызовите CommitTrans или RollbackTrans , чтобы завершить транзакцию.After you call the BeginTrans method, the provider will no longer instantaneously commit changes you make until you call CommitTrans or RollbackTrans to end the transaction.

Для поставщиков, поддерживающих вложенные транзакции, вызов метода примеры BeginTrans в открытой транзакции запускает новую вложенную транзакцию.For providers that support nested transactions, calling the BeginTrans method within an open transaction starts a new, nested transaction. Возвращаемое значение указывает уровень вложенности: возвращаемое значение "1" указывает, что вы открыли транзакцию верхнего уровня (то есть транзакция не вложена в другую транзакцию), "2" означает, что вы открыли транзакцию второго уровня (транзакцию, вложенную в транзакцию верхнего уровня) и т. д.The return value indicates the level of nesting: a return value of "1" indicates you have opened a top-level transaction (that is, the transaction is not nested within another transaction), "2" indicates that you have opened a second-level transaction (a transaction nested within a top-level transaction), and so forth. Вызов CommitTrans или RollbackTrans влияет только на последнюю открытую транзакцию. перед разрешением любых транзакций более высокого уровня необходимо закрыть или откатить текущую транзакцию.Calling CommitTrans or RollbackTrans affects only the most recently opened transaction; you must close or roll back the current transaction before you can resolve any higher-level transactions.

Вызов метода CommitTrans сохраняет изменения, сделанные в открытой транзакции в соединении, и завершает транзакцию.Calling the CommitTrans method saves changes made within an open transaction on the connection and ends the transaction. Вызов метода RollbackTrans изменяет все изменения, сделанные в открытой транзакции, и завершает транзакцию.Calling the RollbackTrans method reverses any changes made within an open transaction and ends the transaction. Вызов любого из методов при отсутствии открытой транзакции приводит к ошибке.Calling either method when there is no open transaction generates an error.

В зависимости от свойства атрибута объекта Connection вызов методов CommitTrans или RollbackTrans может автоматически начать новую транзакцию.Depending on the Connection object's Attributes property, calling either the CommitTrans or RollbackTrans methods may automatically start a new transaction. Если свойство Attributes имеет значение адксакткоммитретаининг, то поставщик автоматически запускает новую транзакцию после вызова CommitTrans .If the Attributes property is set to adXactCommitRetaining, the provider automatically starts a new transaction after a CommitTrans call. Если свойство Attributes имеет значение адксактабортретаининг, то поставщик автоматически запускает новую транзакцию после вызова RollbackTrans .If the Attributes property is set to adXactAbortRetaining, the provider automatically starts a new transaction after a RollbackTrans call.

Remote Data ServiceRemote Data Service

Методы примеры BeginTrans, CommitTransи RollbackTrans недоступны для объекта подключения на стороне клиента.The BeginTrans, CommitTrans, and RollbackTrans methods are not available on a client-side Connection object.

ПрименениеApplies To

Объект Connection (ADO)Connection Object (ADO)

См. такжеSee Also

Примеры методов примеры BeginTrans, CommitTrans и RollbackTrans (Visual Basic) BeginTrans, CommitTrans, and RollbackTrans Methods Example (VB)
Примеры методов примеры BeginTrans, CommitTrans и RollbackTrans (Visual c++) BeginTrans, CommitTrans, and RollbackTrans Methods Example (VC++)
Свойство Attributes (ADO)Attributes Property (ADO)