次の方法で共有


Microsoft 分散トランザクション コーディネータを使用する方法 (ODBC)

新規 : 2006 年 4 月 14 日

MS DTC を使用して複数の SQL Server を更新するには

  1. MS DTC の OLE DtcGetTransactionManager 関数を使用して、MS DTC に接続します。MS DTC の詳細については、Microsoft 分散トランザクション コーディネータを参照してください。

  2. 確立する Microsoft® SQL Server™ 接続ごとに 1 回ずつ SQLDriverConnect を呼び出します。

  3. MS DTC の OLE ITransactionDispenser::BeginTransaction 関数を呼び出して、MS DTC トランザクションを開始し、トランザクションを表すトランザクション オブジェクトを取得します。

  4. MS DTC トランザクションに参加させる ODBC 接続ごとに、SQLSetConnectAttr を 1 回以上呼び出します。SQLSetConnectAttr の 2 番目のパラメータは SQL_ATTR_ENLIST_IN_DTC、3 番目のパラメータは (手順 3. で取得した) トランザクション オブジェクトである必要があります。

  5. 更新する SQL Server ごとに 1 回ずつ SQLExecDirect を呼び出します。

  6. MS DTC の OLE ITransaction::Commit 関数を呼び出して、MS DTC トランザクションをコミットします。トランザクション オブジェクトは無効になります。

一連の MS DTC トランザクションを実行するには、手順 3. から手順 6. を繰り返します。

トランザクション オブジェクトへの参照を解放するには、MS DTC の OLE ITransaction::Return 関数を呼び出します。

MS DTC トランザクションで ODBC 接続を使用し、この接続をローカルの SQL Server トランザクションでも使用するには、SQLSetConnectAttr に SQL_DTC_DONE を指定して呼び出します。

ms403286.note(ja-jp,SQL.90).gifメモ :
手順 4. と手順 5. で示した呼び出し方法の代わりに、SQL Server ごとに SQLSetConnectAttrSQLExecDirect を続けて呼び出すこともできます。

参照

その他の技術情報

トランザクションを実行する方法 (ODBC)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手