Transaktion: Auswirkungen von Transaktionen auf Aktualisierungen (ODBC)

Aktualisiert: November 2007

Aktualisierungen der Datenquelle werden während einer Transaktion mithilfe eines Bearbeitungspuffers verwaltet (diese Methode wird auch außerhalb von Transaktionen eingesetzt). Die Felddatenmember eines Recordsets werden gemeinsam als Bearbeitungspuffer für den aktuellen Datensatz verwendet, den das Recordset während AddNew oder Edit temporär zwischenspeichert. Während eines Delete-Vorgangs wird der aktuelle Datensatz innerhalb einer Transaktion nicht gesichert. Weitere Informationen über den Bearbeitungspuffer und darüber, wie bei Aktualisierungen der aktuelle Datensatz gespeichert wird, finden Sie unter Recordset: Datensatzaktualisierung durch Recordsets (ODBC).

Hinweis:

Wenn Sie das gesammelte Abrufen von Zeilen implementiert haben, können Sie AddNew, Edit oder Delete nicht aufrufen. Stattdessen müssen Sie eigene Funktionen schreiben, die Aktualisierungen der Datenquelle durchführen. Weitere Informationen über das gesammelte Abrufen von Zeilen finden Sie unter Recordset: Abrufen von Datensätzen in einer Sammeloperation (ODBC).

Während einer Transaktion können die Operationen AddNew, Edit und Delete entweder bestätigt oder zurückgesetzt werden. CommitTrans und Rollback können bewirken, dass der aktuelle Datensatz nicht in den Bearbeitungspuffer wiederhergestellt wird. Um sicherzustellen, dass der aktuelle Datensatz fehlerfrei wiederhergestellt wird, müssen Sie genau verstehen, wie die CommitTrans-Memberfunktion und Rollback-Memberfunktion von CDatabase mit den Aktualisierungsfunktionen von CRecordset zusammenwirken.

Auswirkungen von CommitTrans auf Aktualisierungen

Die folgende Tabelle erläutert, wie sich CommitTrans auf Transaktionen auswirkt.

Auswirkungen von CommitTrans auf Aktualisierungen

Operation

Status der Datenquelle

AddNew und Update, anschließend CommitTrans

Ein neuer Datensatz wird zur Datenquelle hinzugefügt.

AddNew (ohne Update), anschließend CommitTrans

Der neue Datensatz geht verloren. Der Datensatz wird nicht zur Datenquelle hinzugefügt.

Edit und Update, anschließend CommitTrans

Die Änderungen werden in der Datenquelle durchgeführt.

Edit (ohne Update), anschließend CommitTrans

Die Änderungen am Datensatz gehen verloren. Der Datensatz bleibt in der Datenquelle unverändert.

Delete, anschließend CommitTrans

Die Datensätze werden aus der Datenquelle gelöscht.

Auswirkungen von Rollback auf Transaktionen

Die folgende Tabelle erläutert, wie sich Rollback auf Transaktionen auswirkt.

Auswirkungen von Rollback auf Transaktionen

Operation

Status des aktuellen Datensatzes

Außerdem müssen Sie

Status der Datenquelle

AddNew und Update, anschließend Rollback

Der Inhalt des aktuellen Datensatzes wird temporär gespeichert, um für einen neuen Datensatz Platz zu schaffen. Der neue Datensatz wird in den Bearbeitungspuffer eingefügt. Nach dem Aufruf von Update wird der aktuelle Datensatz im Bearbeitungspuffer wiederhergestellt.

 

Die mit Update durchgeführte Ergänzung der Datenquelle wird rückgängig gemacht.

AddNew (ohne Update), anschließend Rollback

Der Inhalt des aktuellen Datensatzes wird temporär gespeichert, um für einen neuen Datensatz Platz zu schaffen. Der Bearbeitungspuffer enthält den neuen Datensatz.

AddNew erneut aufrufen, um im Bearbeitungspuffer einen leeren, neuen Datensatz wiederherzustellen. Oder Move(0) aufrufen, um die alten Werte im Bearbeitungspuffer wiederherzustellen.

Da Update nicht aufgerufen wurde, wurden keine Änderungen an der Datenquelle vorgenommen.

Edit und Update, anschließend Rollback

Eine unveränderte Version des aktuellen Datensatzes wird temporär gespeichert. Der Inhalt des Bearbeitungspuffers wird verändert. Nach dem Aufruf von Update bleibt die unveränderte Version des Datensatzes weiterhin temporär gespeichert.

Dynaset: sich vom aktuellen Datensatz wegbewegen, anschließend zurückbewegen, um die unveränderte Version des Datensatzes im Bearbeitungspuffer wiederherzustellen.

Snapshot: Requery aufrufen, um das Recordset aus der Datenquelle zu aktualisieren.

Die mit Update durchgeführten Änderungen an der Datenquelle werden rückgängig gemacht.

Edit (ohne Update), anschließend Rollback

Eine unveränderte Version des aktuellen Datensatzes wird temporär gespeichert. Der Inhalt des Bearbeitungspuffers wird verändert.

Edit erneut aufrufen, um die unveränderte Version des Datensatzes im Bearbeitungspuffer wiederherzustellen.

Da Update nicht aufgerufen wurde, wurden keine Änderungen an der Datenquelle vorgenommen.

Delete, anschließend Rollback

Der Inhalt des aktuellen Datensatzes wird gelöscht.

Requery aufrufen, um den Inhalt des aktuellen Datensatzes aus der Datenquelle zu wiederherzustellen.

Das Löschen von Daten aus der Datenquelle wird rückgängig gemacht.

Siehe auch

Konzepte

Transaktion (ODBC)

Transaktion (ODBC)

Transaktion: Ausführen einer Transaktion in einem Recordset (ODBC)

Referenz

CDatabase Class

CRecordset Class