使用Microsoft分布式事务处理协调器(ODBC)

使用 MS DTC 更新两个或多个 SQL Server

  1. 使用 MS DTC OLE DtcGetTransactionManager 函数连接到 MS DTC。 有关 MS DTC 的信息,请参阅Microsoft分布式事务处理协调器。

  2. 针对要建立的每个MICROSOFT SQL Server 连接调用 SQL DriverConnect 一次。

  3. 调用 MS DTC OLE ITransactionDispenser::BeginTransaction 函数以开始 MS DTC 事务并获取表示事务的 Transaction 对象。

  4. 为要在 MS DTC 事务中登记的每个 ODBC 连接调用 SQLSetConnectAttr 一次或多次。 SQLSetConnectAttr 第二个参数必须SQL_ATTR_ENLIST_IN_DTC,第三个参数必须是 Transaction 对象(在步骤 3 中获取)。

  5. 针对要更新的每个 SQL Server 调用 SQLExecDirect 一次。

  6. 调用 MS DTC OLE ITransaction::Commit 函数以提交 MS DTC 事务。 Transaction 对象不再有效。

若要执行一系列 MS DTC 事务,请重复步骤 3 到 6。

若要释放对 Transaction 对象的引用,请调用 MS DTC OLE ITransaction::Return 函数。

若要将 ODBC 连接与 MS DTC 事务配合使用,然后使用与本地 SQL Server 事务相同的连接,请使用 SQL_DTC_DONE 调用 SQLSetConnectAttr

注释

还可以为每个 SQL Server 依次调用 SQLSetConnectAttrSQLExecDirect ,而不是按照步骤 4 和步骤 5 中的建议调用它们。

另请参阅

执行事务 (ODBC)