使用 MS DTC 更新两个或多个 SQL Server
使用 MS DTC OLE DtcGetTransactionManager 函数连接到 MS DTC。 有关 MS DTC 的信息,请参阅Microsoft分布式事务处理协调器。
针对要建立的每个MICROSOFT SQL Server 连接调用 SQL DriverConnect 一次。
调用 MS DTC OLE ITransactionDispenser::BeginTransaction 函数以开始 MS DTC 事务并获取表示事务的 Transaction 对象。
为要在 MS DTC 事务中登记的每个 ODBC 连接调用 SQLSetConnectAttr 一次或多次。 SQLSetConnectAttr 第二个参数必须SQL_ATTR_ENLIST_IN_DTC,第三个参数必须是 Transaction 对象(在步骤 3 中获取)。
针对要更新的每个 SQL Server 调用 SQLExecDirect 一次。
调用 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 依次调用 SQLSetConnectAttr 和 SQLExecDirect ,而不是按照步骤 4 和步骤 5 中的建议调用它们。