Как использовать координатор распределенных транзакций (Майкрософт) (ODBC)
Обновление двух и более экземпляров SQL Server с помощью координатора распределенных транзакций (MS DTC)
Подключитесь к координатору распределенных транзакций (MS DTC), используя функцию DtcGetTransactionManager MS DTC OLE. Дополнительные сведения о координаторе распределенных транзакций (MS DTC) см. «Координатор распределенных транзакций (Майкрософт)».
Вызовите SQLDriverConnect по одному разу для каждого устанавливаемого соединения с Microsoft® SQL Server™.
Вызовите функцию MS DTC OLE ITransactionDispenser::BeginTransaction, чтобы начать транзакцию координатора распределенных транзакций (MS DTC) и получить объект Transaction, представляющий транзакцию.
Вызовите SQLSetConnectAttr один или более раз для каждого из соединений ODBC, которые необходимо перечислить в транзакции MS DTC. Вторым параметром функции SQLSetConnectAttr должен быть SQL_ATTR_ENLIST_IN_DTC, а третьим параметром должен быть объект Transaction (полученный на шаге 3).
Вызовите SQLExecDirect по одному разу для каждого экземпляра SQL Server, который нужно обновить.
Вызовите функцию 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 способом. |