Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/171613

From BetaArchive Wiki
Knowledge Base

INFO: Retaining Transactions with Transaction Object

Article ID: 171613

Article Last Modified on 10/15/2003


  • Microsoft OLE DB 1.1
  • Microsoft OLE DB Provider for ODBC 1.1

This article was previously published under Q171613


This article explains the relationship of retaining transactions and transaction object.


An OLE DB application can use ITransactionLocal::StartTransaction to begin a transaction if the transaction object is supported by providers. ITransactionLocal is an interface on the session object, and can be QueryInterface from any other interface on the session object. Information regarding a transaction can be retrieved by calling the GetTransactionInfo method.

The Commit or Abort method of the transaction object can be used to commit or abort a transaction. The Commit and Abort methods allow you to specify whether or not to retain a transaction. If you do not retain the transaction object, a new transaction will not be started after the original transaction is finished, and the transaction object will become inactive. The only valid action for the transaction object will be to release it. To retain a transaction, set fRetaining flag to TRUE in the Commit or Abort method.

The OLE DB Provider for ODBC version 1.1 supports transaction object and commit/abort retaining. Transactions can be committed synchronously, asynchronously, or two-phased, depending on the setting of XACTTC flag. With fRetaining set to TRUE, however, the XACTTC flag must be set to zero. The OLE DB Provider for ODBC version 1.1 does not support any setting of XACTTC flag when fRetaining set to TRUE.

Additional query words: ado preserve cursor active data objects

Keywords: kbinfo kbprogramming KB171613