>BeginTrans, CommitTrans, RollbackTrans Methods

The transaction methods manage transaction processing within a Connection object as follows:

Syntax

[Set level = ] connection.BeginTrans

connection.{CommitTrans | RollbackTrans}

The connection placeholder is an object variable representing an open Connection object.

The level placeholder represents a Long variable to which the BeginTrans method can return a value indicating the nesting level of the transaction. The CommitTrans and RollbackTrans methods do not return any value.

Remarks

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 goes through. Also, try grouping operations that require disk access into transaction blocks to improve the performance of your application. This buffers your operations and may reduce the number of times the disk is accessed.

Once you call the BeginTrans method, the provider will no longer instantaneously commit any changes you make until you call CommitTrans or RollbackTrans to end the transaction.

For providers that support nested transactions, calling the BeginTrans method within an open transaction starts a new, nested transaction. 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. You must resolve the most recently opened transaction before resolving any higher level transactions.

Calling the CommitTrans method saves changes made within an open transaction on the connection and ends the transaction. 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.

Depending on the Connection object's Attributes property, calling either the CommitTrans or RollbackTrans methods may automatically start a new transaction. If the Attributes property is set to adXactCommitRetaining, ADO automatically starts a new transaction after a CommitTrans call. If the Attributes property is set to adXactAbortRetaining, ADO automatically starts a new transaction after a RollbackTrans call.