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 Felddatenmember eines Recordsets dienen zusammen als Bearbeitungspuffer, der den aktuellen Datensatz enthält, der vom Recordset vorübergehend während eines oder Editmehrerer AddNew Datensätze gesichert wird. Während eines Delete Vorgangs wird der aktuelle Datensatz nicht innerhalb einer Transaktion gesichert. Weitere Informationen zum Bearbeitungspuffer und zum Speichern des aktuellen Datensatzes finden Sie unter Recordset: How Recordsets Update Records (ODBC).

Hinweis

Wenn Sie das Abrufen von Massenzeilen implementiert haben, können Sie weder aufrufen AddNewnoch EditDelete. Sie müssen stattdessen eigene Funktionen schreiben, um Aktualisierungen der Datenquelle auszuführen. Weitere Informationen zum Abrufen von Massenzeilen finden Sie unter Recordset: Abrufen von Datensätzen in Massen (ODBC).For more information about bulk row fetching, see Recordset: Fetching Records in Bulk (ODBC).For more information about bulk row fetching, see Recordset: Fetching Records in Bulk (ODBC).For more information

Während Transaktionen AddNew, , Editund Delete Vorgänge können zugesichert oder zurückgesetzt werden. Die Auswirkungen und CommitTrans Rollback können 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 Funktionen und Rollback Member der Arbeit mit den Aktualisierungsfunktionen von CDatabase CRecordset.

Auswirkungen von CommitTrans auf Updates

In der folgenden Tabelle werden die Auswirkungen auf CommitTrans 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. 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 auf Rollback 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 bearbeitungspuffer eingegeben. Nach Update dem Aufruf wird der aktuelle Datensatz im Bearbeitungspuffer wiederhergestellt. Das Hinzufügen der Datenquelle, die von Update ihnen erstellt wird, wird umgekehrt.
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 zurück, um die unbearbeitete Version des Datensatzes wieder auf den Bearbeitungspuffer zurückzusetzen.

Momentaufnahme: Rufen Sie auf Requery , um das Recordset aus der Datenquelle zu aktualisieren.
Änderungen an der Datenquelle, die von Update ihnen vorgenommen werden, 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