Неявные транзакции 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 используют либо режим автоматической фиксации, либо явные транзакции.