Freigeben über


Transaktion: Auswirkungen von Transaktionen auf Aktualisierungen (ODBC)

Aktualisierungen der Datenquelle werden während Transaktionen mithilfe eines Bearbeitungspuffers verwaltet (die gleiche Methode, die außerhalb von Transaktionen verwendet wird). Die Felddatenmitglieder eines Recordsets dienen zusammen als Bearbeitungspuffer, der den aktuellen Datensatz enthält, der vom Recordset vorübergehend bei einem AddNew oder Edit gesichert wird. Während eines Delete Vorgangs wird der aktuelle Datensatz nicht innerhalb einer Transaktion gesichert. Weitere Informationen zum Bearbeitungspuffer und dazu, wie Aktualisierungen den aktuellen Datensatz speichern, finden Sie unter Recordset: How Recordsets Update Records (ODBC).

Hinweis

Wenn Sie das Abrufen von Massenzeilen implementiert haben, können Sie weder AddNew, noch Edit oder Delete aufrufen. Sie müssen stattdessen eigene Funktionen schreiben, um Aktualisierungen der Datenquelle auszuführen. Weitere Informationen zum massiven Abrufen von Zeilen finden Sie unter Recordset: Fetching Records in Bulk (ODBC).

Während Transaktionen können AddNew, Edit und Delete Vorgänge zugesichert oder zurückgesetzt werden. Die Auswirkungen von CommitTrans und Rollback könnten dazu führen, dass der aktuelle Datensatz nicht im Bearbeitungspuffer wiederhergestellt wird. Um sicherzustellen, dass der aktuelle Datensatz ordnungsgemäß wiederhergestellt wird, ist es wichtig zu verstehen, wie die CommitTrans- und Rollback-Memberfunktionen von CDatabase mit den Aktualisierungsfunktionen von CRecordset arbeiten.

Auswirkungen von CommitTrans auf Updates

In der folgenden Tabelle werden die Auswirkungen von CommitTrans auf Transaktionen erläutert.

Auswirkungen von CommitTrans auf Updates

Vorgang Status der Datenquelle
AddNew und Update, und dann CommitTrans Der Datenquelle werden neue Datensätze hinzugefügt.
AddNew (ohne Update) und dann CommitTrans Neuer Datensatz geht verloren. Datensatz nicht zur Datenquelle hinzugefügt.
Edit und Update, und dann CommitTrans Bearbeitungen, die an die Datenquelle gebunden sind.
Edit (ohne Update) und dann CommitTrans Änderungen am Datensatz gehen verloren. Der Datensatz bleibt in der Datenquelle unverändert.
Delete dann CommitTrans Datensätze, die aus der Datenquelle gelöscht wurden.

Auswirkungen von Rollback auf Transaktionen

In der folgenden Tabelle werden die Auswirkungen von Rollback auf Transaktionen erläutert.

Auswirkungen von Rollback auf Transaktionen

Vorgang Status des aktuellen Datensatzes Sie müssen auch Status der Datenquelle
AddNew und Updatedann Rollback Der Inhalt des aktuellen Datensatzes wird vorübergehend gespeichert, um Platz für neuen Datensatz zu schaffen. Neuer Datensatz wird in den Bearbeitungspuffer eingegeben. Nach dem Aufruf von Update wird der aktuelle Datensatz im Bearbeitungspuffer wiederhergestellt. Die von Update vorgenommene Hinzufügung der Datenquelle wird rückgängig gemacht.
AddNew (ohne Update), dann Rollback Der Inhalt des aktuellen Datensatzes wird vorübergehend gespeichert, um Platz für neuen Datensatz zu schaffen. Der Bearbeitungspuffer enthält neuen Datensatz. Rufen Sie erneut auf AddNew , um den Bearbeitungspuffer in einem leeren, neuen Datensatz wiederherzustellen. Oder rufen Sie Move(0) auf, um die alten Werte im Bearbeitungspuffer wiederherzustellen. Da Update nicht aufgerufen wurde, wurden keine Änderungen an der Datenquelle vorgenommen.
Edit und Updatedann Rollback Eine unbearbeitete Version des aktuellen Datensatzes wird vorübergehend gespeichert. Änderungen werden an dem Inhalt des Bearbeitungspuffers vorgenommen. Nach Update dem Aufruf wird die unbearbeitete Version des Datensatzes noch vorübergehend gespeichert. Dynaset: Scrollen Sie vom aktuellen Datensatz weg und dann zurück, um die unbearbeitete Version des Datensatzes im Bearbeitungspuffer wiederherzustellen.

Momentaufnahme: Rufen Sie auf Requery , um das Recordset aus der Datenquelle zu aktualisieren.
Änderungen an der Datenquelle, die von Update vorgenommen wurden, werden rückgängig gemacht.
Edit (ohne Update), dann Rollback Eine unbearbeitete Version des aktuellen Datensatzes wird vorübergehend gespeichert. Änderungen werden an dem Inhalt des Bearbeitungspuffers vorgenommen. Rufen Sie erneut auf Edit , um die unbearbeitete Version des Datensatzes im Bearbeitungspuffer wiederherzustellen. Da Update nicht aufgerufen wurde, wurden keine Änderungen an der Datenquelle vorgenommen.
Delete dann Rollback Der Inhalt des aktuellen Datensatzes wird gelöscht. Rufen Sie Requery auf, um den Inhalt des aktuellen Datensatzes aus der Datenquelle wiederherzustellen. Das Löschen von Daten aus der Datenquelle wird rückgängig gemacht.

Siehe auch

Transaktion (ODBC)
Transaktion: Ausführen einer Transaktion in einem Recordset (ODBC)
CDatabase-Klasse
CRecordset-Klasse