Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Transaktionen in ODBC werden auf Verbindungsebene verwaltet. Wenn eine Anwendung eine Transaktion abgeschlossen hat, wird alle abgeschlossenen Arbeiten über alle Anweisungshandles für diese Verbindung ausgeführt oder zurückgesetzt. Um eine Transaktion zu übernehmen oder zurückzurufen, sollten Anwendungen SQLEndTran aufrufen, anstatt eine COMMIT- oder ROLLBACK-Anweisung zu übermitteln.
Eine Anwendung ruft SQLSetConnectAttr auf, um zwischen den beiden ODBC-Modi zum Verwalten von Transaktionen zu wechseln:
AutoCommit-Modus
Jede Anweisung wird automatisch zugesichert, wenn sie erfolgreich abgeschlossen wird. Wenn Sie im AutoCommit-Modus ausgeführt werden, sind keine anderen Transaktionsverwaltungsfunktionen erforderlich.
Manueller Commit-Modus
Alle ausgeführten Anweisungen sind in derselben Transaktion enthalten, bis sie explizit durch Aufrufen von SQLEndTran beendet wird.
Der AutoCommit-Modus ist der Standardtransaktionsmodus für ODBC. Wenn eine Verbindung hergestellt wird, befindet sie sich im AutoCommit-Modus, bis SQLSetConnectAttr aufgerufen wird, um zum manuellen Commit-Modus zu wechseln, indem der AutoCommit-Modus deaktiviert wird. Wenn eine Anwendung die Automatische Ausschaltung deaktiviert, startet die nächste Anweisung, die an die Datenbank gesendet wird, eine Transaktion. Die Transaktion bleibt dann wirksam, bis die Anwendung SQLEndTran mit den Optionen SQL_COMMIT oder SQL_ROLLBACK aufruft. Der Befehl, der an die Datenbank gesendet wurde, nachdem SQLEndTran die nächste Transaktion gestartet hat.
Wenn eine Anwendung vom manuellen Commit in den AutoCommit-Modus wechselt, wird vom Treiber ein Commit für alle transaktionen ausgeführt, die derzeit in der Verbindung geöffnet sind.
ODBC-Anwendungen sollten nicht Transact-SQL Transaktionsanweisungen wie BEGIN TRANSACTION, COMMIT TRANSACTION oder ROLLBACK TRANSACTION verwenden, da dies zu unbestimmten Verhaltensweisen im Treiber führen kann. Eine ODBC-Anwendung sollte im Autocommit-Modus ausgeführt werden und keine Transaktionsverwaltungsfunktionen oder -anweisungen verwenden oder im manuellen Commitmodus ausgeführt werden und die ODBC SQLEndTran-Funktion verwenden, um Transaktionen entweder zu übernehmen oder zurück zu setzen.