Freigeben über


BeginTrans-, CommitTrans- und RollbackTrans-Methode (ADO)

Diese Transaktionsmethoden verwalten die Transaktionsverarbeitung innerhalb eines Connection-Objekts wie folgt:

  • BeginTrans: Beginnt eine neue Transaktion.

  • CommitTrans: Speichert alle Änderungen und beendet die aktuelle Transaktion. Diese Methode kann auch eine neue Transaktion starten.

  • RollbackTrans: Verwirft alle Änderungen, die während der aktuellen Transaktion vorgenommen wurden, und beendet die Transaktion. Diese Methode kann auch eine neue Transaktion starten.

Syntax

  
level = object.BeginTrans()  
object.BeginTrans  
object.CommitTrans  
object.RollbackTrans  

Rückgabewert

BeginTrans kann als eine Funktion aufgerufen werden, die eine Long-Variable mit einer Angabe der Schachtelungsebene der Transaktion zurückgibt.

Parameter

object
Ein Connection-Objekt.

Verbindung

Verwenden Sie diese Methoden mit einem Connection-Objekt, wenn Sie eine Reihe von Änderungen an den Quelldaten als einzelne Einheit speichern oder verwerfen möchten. Wenn Sie beispielsweise Geld zwischen Konten überweisen möchten, subtrahieren Sie einen Betrag von einem Konto und addieren denselben Betrag zum anderen Konto. Tritt bei einer der Aktualisierungen ein Fehler auf, sind die Konten nicht mehr ausgeglichen. Indem Sie diese Änderungen in einer geöffneten Transaktion vornehmen, stellen Sie sicher, dass entweder alle oder keine der Änderungen angewendet werden.

Hinweis

Nicht alle Anbieter unterstützen Transaktionen. Stellen Sie sicher, dass die vom Anbieter definierte Eigenschaft für die Transaktions-DDL in der Properties-Sammlung des Connection-Objekts angezeigt wird. Dies gibt an, dass der Anbieter Transaktionen unterstützt. Wenn der Anbieter Transaktionen nicht unterstützt, wird beim Aufrufen dieser Methoden ein Fehler zurückgeben.

Nachdem Sie die BeginTrans-Methode aufgerufen haben, werden von Ihnen vorgenommene Änderungen nicht mehr sofort vom Anbieter committet, bis Sie CommitTrans oder RollbackTrans aufrufen, um die Transaktion zu beenden.

Bei Anbietern, die geschachtelte Transaktionen unterstützen, wird durch das Aufrufen der BeginTrans-Methode innerhalb einer geöffneten Transaktion eine neue, geschachtelte Transaktion gestartet. Der Rückgabewert gibt die Schachtelungsebene an: „1“ gibt an, dass Sie eine Transaktion auf oberster Ebene geöffnet haben (d. h. die Transaktion ist nicht innerhalb einer anderen Transaktion geschachtelt), „2“ gibt an, dass Sie eine Transaktion auf zweiter Ebene geöffnet haben (eine Transaktion, die in einer Transaktion auf oberster Ebene geschachtelt ist) usw. Das Aufrufen von CommitTrans oder RollbackTrans wirkt sich nur auf die zuletzt geöffnete Transaktion aus. Sie müssen die aktuelle Transaktion schließen oder zurücksetzen, bevor Sie Transaktionen auf höherer Ebene auflösen können.

Beim Aufrufen der CommitTrans-Methode werden alle Änderungen gespeichert, die in einer geöffneten Transaktion für die Verbindung vorgenommen wurden, und die Transaktion wird beendet. Beim Aufrufen der RollbackTrans-Methode werden alle Änderungen zurückgesetzt, die in einer geöffneten Transaktion vorgenommen wurden, und die Transaktion wird beendet. Wenn beim Aufrufen dieser Methoden keine geöffnete Transaktion vorhanden ist, wird ein Fehler generiert.

Abhängig von der Attributes-Eigenschaft des Connection-Objekts kann beim Aufrufen der Methoden CommitTrans oder RollbackTrans automatisch eine neue Transaktion gestartet werden. Wenn die Attributes-Eigenschaft auf adXactCommitRetaining festgelegt ist, startet der Anbieter nach einem CommitTrans-Aufruf automatisch eine neue Transaktion. Wenn die Attributes-Eigenschaft auf adXactAbortRetaining festgelegt ist, startet der Anbieter nach einem RollbackTrans-Aufruf automatisch eine neue Transaktion.

Remote Data Service

Die Methoden BeginTrans, CommitTrans und RollbackTrans sind für ein clientseitiges Connection-Objekt nicht verfügbar.

Gilt für

Connection-Objekt (ADO)

Weitere Informationen

BeginTrans-, CommitTrans- und RollbackTrans-Methode – Beispiel (VB)
BeginTrans-, CommitTrans- und RollbackTrans-Methode – Beispiel (VC++)
Attributes-Eigenschaft (ADO)