Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Транзакции в ODBC управляются на уровне подключения. Когда приложение завершает транзакцию, оно фиксирует или откатывает всю работу, завершенную с помощью всех дескрипторов инструкций в этом соединении. Чтобы зафиксировать или откат транзакции, приложения должны вызывать SQLEndTran вместо отправки инструкции COMMIT или ROLLBACK.
Приложение вызывает SQLSetConnectAttr для переключения между двумя режимами управления транзакциями ODBC:
Режим автокоммитирования
Каждая инструкция автоматически фиксируется при успешном завершении. При запуске в режиме автокоммитирования другие функции управления транзакциями не требуются.
Режим фиксации вручную
Все выполняемые инструкции включаются в одну транзакцию, пока она не будет остановлена путем вызова SQLEndTran.
Режим автокоммитирования — это режим транзакции по умолчанию для ODBC. При создании подключения он находится в режиме автоматической фиксации до вызова SQLSetConnectAttr для переключения в режим ручной фиксации, задав режим автоматической фиксации. Когда приложение отключает автокоммит, следующая инструкция, отправленная в базу данных, запускает транзакцию. Затем транзакция остается в силе, пока приложение не вызовет SQLEndTran с параметрами SQL_COMMIT или SQL_ROLLBACK. Команда, отправленная в базу данных после запуска следующей транзакции SQLEndTran .
Если приложение переключается с ручной фиксации в режим автоматической фиксации, драйвер фиксирует все транзакции, открытые в настоящее время в подключении.
Приложения ODBC не должны использовать Transact-SQL инструкции транзакций, такие как BEGIN TRANSACTION, COMMIT TRANSACTION или ROLLBACK TRANSACTION, так как это может привести к неопределенному поведению в драйвере. Приложение ODBC должно работать в режиме автоматической фиксации и не использовать какие-либо функции управления транзакциями или инструкции, либо выполняться в режиме ручной фиксации и использовать функцию ODBC SQLEndTran для фиксации или отката транзакций.