Vorgehensweise: Verwenden von Microsoft Distributed Transaction Coordinator (ODBC)
So aktualisieren Sie zwei oder mehr SQL Server mit MS DTC
Stellen Sie mit der MS DTC OLE-Funktion DtcGetTransactionManager eine Verbindung mit MS DTC her. Informationen zu MS DTC finden Sie unter Microsoft Distributed Transaction Coordinator.
Rufen Sie SQLDriverConnect einmal für jede Microsoft® SQL Server™-Verbindung auf, die Sie einrichten möchten.
Rufen Sie die MS DTC OLE-Funktion ITransactionDispenser::BeginTransaction auf, um eine MS DTC-Transaktion zu starten und ein Transaction-Objekt zu erhalten, das diese Transaktion repräsentiert.
Rufen Sie SQLSetConnectAttr ein- oder mehrmals für jede ODBC-Verbindung auf, die Sie in die MS DTC-Transaktion einfügen möchten. Als zweiter Parameter von SQLSetConnectAttr muss SQL_ATTR_ENLIST_IN_DTC und als dritter Parameter muss das Transaction-Objekt (aus Schritt 3) angegeben werden.
Rufen Sie einmal für jeden SQL Server auf, den Sie aktualisieren möchten.
Rufen Sie MS DTC OLE-Funktion ITransaction::Commit auf, um ein Commit für die MS DTC-Transaktion auszuführen. Das Transaction-Objekt ist nicht mehr gültig.
Um eine Reihe von MS DTC-Transaktionen auszuführen, wiederholen Sie die Schritte 3 bis 6.
Um den Verweis auf das Transaction-Objekt freizugeben, rufen Sie die MS DTC OLE-Funktion ITransaction::Return auf.
Wenn Sie eine ODBC-Verbindung mit einer MS DTC-Transaktion und dieselbe Verbindung dann mit einer lokalen SQL Server-Transaktion verwenden möchten, rufen Sie SQLSetConnectAttr mit der Angabe SQL_DTC_DONE auf.
Hinweis |
---|
Sie können SQLSetConnectAttr und SQLExecDirect auch für jeden SQL Server, statt wie oben in den Schritten 4 und 5 angegeben, aufrufen. |