Поделиться через


Как использовать координатор распределенных транзакций (Майкрософт) (ODBC)

Обновление двух и более экземпляров SQL Server с помощью координатора распределенных транзакций (MS DTC)

  1. Подключитесь к координатору распределенных транзакций (MS DTC), используя функцию DtcGetTransactionManager MS DTC OLE. Дополнительные сведения о координаторе распределенных транзакций (MS DTC) см. «Координатор распределенных транзакций (Майкрософт)».

  2. Вызовите SQLDriverConnect по одному разу для каждого устанавливаемого соединения с Microsoft® SQL Server™.

  3. Вызовите функцию MS DTC OLE ITransactionDispenser::BeginTransaction, чтобы начать транзакцию координатора распределенных транзакций (MS DTC) и получить объект Transaction, представляющий транзакцию.

  4. Вызовите SQLSetConnectAttr один или более раз для каждого из соединений ODBC, которые необходимо перечислить в транзакции MS DTC. Вторым параметром функции SQLSetConnectAttr должен быть SQL_ATTR_ENLIST_IN_DTC, а третьим параметром должен быть объект Transaction (полученный на шаге 3).

  5. Вызовите SQLExecDirect по одному разу для каждого экземпляра SQL Server, который нужно обновить.

  6. Вызовите функцию MS DTC OLE ITransaction::Commit, чтобы зафиксировать транзакцию MS DTC. Объект Transaction более не действителен.

Чтобы выполнить ряд транзакций MS DTC, повторите шаги с 3 по 6.

Чтобы освободить ссылку на объект Transaction, вызовите функцию MS DTC OLE ITransaction::Return.

Чтобы использовать соединение ODBC с транзакцией распределенного координатора транзакций (MS DTC), а затем использовать то же соединение с транзакцией локального SQL Server, вызовите функцию SQLSetConnectAttr с параметром SQL_DTC_DONE.

ПримечаниеПримечание

Можно также вызывать SQLSetConnectAttr и SQLExecDirect по очереди для каждого экземпляра SQL Server, а не вызывать их описанным выше в шагах 4 и 5 способом.

См. также

Основные понятия