How to use Microsoft Distributed Transaction Coordinator (ODBC)

To update two or more SQL Servers by using MS DTC

  1. Connect to MS DTC by using the MS DTC OLE DtcGetTransactionManager function. For information about MS DTC, see Microsoft Distributed Transaction Coordinator.
  2. Call SQLDriverConnect once for each Microsoft® SQL Server™ connection you want to establish.
  3. Call the MS DTC OLE ITransactionDispenser::BeginTransaction function to begin an MS DTC transaction and obtain a Transaction object that represents the transaction.
  4. Call SQLSetConnectAttr one or more times for each ODBC connection you want to enlist in the MS DTC transaction. SQLSetConnectAttr must be called with an fOption of SQL_ATTR_ENLIST_IN_DTC and a vParam of the Transaction object (obtained in Step 3).
  5. Call SQLExecDirect once for each SQL Server you want to update.
  6. Call the MS DTC OLE ITransaction::Commit function to commit the MS DTC transaction. The Transaction object is no longer valid.

To perform a series of MS DTC transactions, repeat steps 3 through 6.

To release the reference to the Transaction object, call the MS DTC OLE ITransaction::Return function.

To use an ODBC connection with an MS DTC transaction, and then use the same connection with a local SQL Server transaction, call SQLSetConnectAttr with a vParam of SQL_DTC_DONE.


Note You can also call SQLSetConnectAttr and SQLExecDirect in turn for each SQL Server instead of calling them as suggested earlier in Steps 4 and 5.


See Also
Performing Distributed Transactions SQLSetConnectAttr
SQLDriverConnect  


(c) 1988-98 Microsoft Corporation. All Rights Reserved.