Freigeben über


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 mindestens einmal für jede ODBC-Verbindung auf, die Sie in der MS DTC-Transaktion auflisten möchten. Der zweite SQLSetConnectAttr-Parameter muss SQL_ATTR_ENLIST_IN_DTC lauten und der dritte Parameter muss das Transaktionsobjekt (aus Schritt 3) sein.

  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.

Siehe auch

Konzepte

Durchführen von Transaktionen (ODBC)