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


Неявные транзакции API

Неявные транзакции можно определить при помощи функций интерфейсов прикладного программирования (API) OLE DB и ODBC.

Интерфейс OLE DB

OLE DB не обладает методом специальной установки режима неявных транзакций.

  • Для запуска явной транзакции вызовите метод ITransactionLocal::StartTransaction.

  • При последующем вызове метода ITransaction::Commit или ITransaction::Abort с параметром fRetaining равным TRUE, OLE DB выполняет текущую транзакцию и переходит в режим неявных транзакций. Соединение остается в режиме неявных транзакций, пока значение параметра fRetaining метода ITransaction::Commit или ITransaction::Abort равно TRUE.

  • Для остановки режима неявных транзакций вызовите ITransaction::Commit или ITransaction::Abort со значением параметра fRetaining равным FALSE.

Интерфейс ODBC

  • Для запуска режима неявных транзакций вызовите функцию SQLSetConnectAttr с параметром Attribute, равным SQL_ATTR_AUTOCOMMIT и параметром ValuePtr, равным SQL_AUTOCOMMIT_OFF.

  • Соединение будет находиться в режиме неявных транзакций до тех пор, пока не будет вызвана функция SQLSetConnectAttr с параметром Attribute, равным SQL_ATTR_AUTOCOMMIT и параметром ValuePtr, равным SQL_AUTOCOMMIT_ON.

  • Для фиксации или отката каждой транзакции вызовите функцию SQLEndTran с параметром CompletionType, равным SQL_COMMIT или SQL_ROLLBACK.

  • Когда параметр SQL_AUTOCOMMIT_OFF установлен приложением ODBC, драйвер ODBC SQL Server вызывает инструкцию SET IMPLICIT_TRANSACTION ON.

Интерфейс ADO

ADO не поддерживает неявные транзакции. Приложения ADO используют либо режим автоматической фиксации, либо явные транзакции.

См. также

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