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 Edit
mehrerer 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 AddNew
noch Edit
Delete
. 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
, , Edit
und 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 Update dann 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 Update dann 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