Implizite API-Transaktionen

Implizite Transaktionen können mithilfe von Features der OLE DB- und ODBC-APIs (Application Programming Interfaces, Schnittstellen für Anwendungsprogrammierung) angegeben werden.

OLE DB

OLE DB bietet keine Methode, mit der der implizite Transaktionsmodus spezifisch festgelegt werden kann.

  • Rufen Sie zunächst die ITransactionLocal::StartTransaction-Methode auf, um eine explizite Transaktion zu starten.

  • Wenn Sie dann entweder die ITransaction::Commit- oder die ITransaction::Abort-Methode aufrufen, und fRetaining dabei auf TRUE festgelegt ist, schließt OLE DB die aktuelle Transaktion ab und geht in den impliziten Transaktionsmodus über. Die Verbindung bleibt im impliziten Transaktionsmodus, so lange Sie fRetaining für ITransaction::Commit oder ITransaction::Abort auf TRUE festgelegt haben.

  • Um den impliziten Transaktionsmodus zu beenden, rufen Sie ITransaction::Commit oder ITransaction::Abort auf und legen dabei fRetaining auf FALSE fest.

ODBC

  • Um den impliziten Transaktionsmodus zu starten, rufen Sie die SQLSetConnectAttr-Funktion auf, und legen Sie dabei Attribute auf SQL_ATTR_AUTOCOMMIT und ValuePtr auf SQL_AUTOCOMMIT_OFF fest.

  • Die Verbindung bleibt im impliziten Transaktionsmodus, bis Sie SQLSetConnectAttr aufrufen und Attribute dabei auf SQL_ATTR_AUTOCOMMIT und ValuePtr auf SQL_AUTOCOMMIT_ON festlegen.

  • Rufen Sie die SQLEndTran-Funktion auf, und legen Sie dabei CompletionType entweder auf SQL_COMMIT oder SQL_ROLLBACK fest, um für einzelne Transaktionen einen Commit oder Rollback auszuführen.

  • Wenn SQL_AUTOCOMMIT_OFF von einer ODBC-Anwendung festgelegt wird, gibt der SQL Server-ODBC-Treiber eine SET IMPLICIT_TRANSACTION ON-Anweisung aus.

ADO

ADO unterstützt keine impliziten Transaktionen. ADO-Anwendungen verwenden entweder den Autocommitmodus oder explizite Transaktionen.