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


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

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

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

  2. Вызовите метод SQL DriverConnect по одному разу для каждого устанавливаемого соединения с 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 способом.

См. также

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

Выполнение транзакций (ODBC)