共用方式為


ODBC 中的交易

ODBC 中的交易會在連接層級進行管理。當應用程式完成交易時,它會認可或回復透過該連接之所有陳述式控制代碼完成的所有工作。若要認可或回復交易,應用程式應該呼叫 SQLEndTran 而非提交 COMMIT 或 ROLLBACK 陳述式。

應用程式會呼叫 SQLSetConnectAttr,在管理交易的兩個 ODBC 模式之間切換:

  • 自動認可模式

    每個陳述式都會在成功完成時自動認可。當您在自動認可模式下執行時,不需要其他任何交易管理函數。

  • 手動認可模式

    所有執行的陳述式都包含在相同的交易中,直到特別呼叫 SQLEndTran 來停止該交易為止。

自動認可模式是 ODBC 的預設交易模式。建立連接時,該交易都處於自動認可模式,直到呼叫 SQLSetConnectAttr,將自動認可模式設定為關閉來切換到手動認可模式為止。當應用程式關閉自動認可時,傳送到資料庫的下一個陳述式會啟動交易。接著,交易會維持作用,直到應用程式利用 SQL_COMMIT 或 SQL_ROLLBACK 選項呼叫 SQLEndTran 為止。在 SQLEndTran 之後傳送到資料庫的命令會啟動下一個交易。

如果應用程式從手動認可模式切換到自動認可模式,驅動程式會認可目前在連接上開啟的所有交易。

ODBC 應用程式不應使用 Transact-SQL 交易陳述式 (例如,BEGIN TRANSACTION、COMMIT TRANSACTION 或 ROLLBACK TRANSACTION),因為這可能會在驅動程式上造成未定的行為。ODBC 應用程式應該在自動認可模式下執行,而且不應該使用任何交易管理函數或陳述式,或者應該在手動認可模式下執行,並使用 ODBC SQLEndTran 函數來認可或回復交易。

請參閱

概念