API 隐式事务

可以使用 OLE DB 和 ODBC 应用程序编程接口 (API) 的功能来指定隐式事务。

OLE DB

OLE DB 没有专门用来设置隐式事务模式的方法。

  • 调用 ITransactionLocal::StartTransaction 方法来启动显式事务。

  • 如果调用 ITransaction::CommitITransaction::Abort 方法并在调用时将 fRetaining 设置为 TRUE,OLE DB 将完成当前的事务并进入隐式事务模式。只要将 ITransaction::CommitITransaction::Abort 中的 fRetaining 设置为 TRUE,连接就将保持隐式事务模式。

  • 调用 ITransaction::CommitITransaction::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 应用程序设置时,SQL Server ODBC 驱动程序将发出 SET IMPLICIT_TRANSACTION ON 语句。

ADO

ADO 不支持隐式事务。ADO 应用程序使用自动提交模式或显式模式。

请参阅

概念