Vorgehensweise: Verwenden von Microsoft Distributed Transaction Coordinator (ODBC)

So aktualisieren Sie zwei oder mehr SQL Server mit MS DTC

  1. 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.

  2. Rufen Sie SQLDriverConnect einmal für jede Microsoft® SQL Server™-Verbindung auf, die Sie einrichten möchten.

  3. 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.

  4. 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.

  5. Rufen Sie einmal für jeden SQL Server auf, den Sie aktualisieren möchten.

  6. 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.

HinweisHinweis

Sie können SQLSetConnectAttr und SQLExecDirect auch für jeden SQL Server, statt wie oben in den Schritten 4 und 5 angegeben, aufrufen.