Einzelnen Beitrag anzeigen

PeterPetersen

Registriert seit: 15. Sep 2010
8 Beiträge
 
#1

TClientDataSet.UndoLastChange - Reihenfolge der Änderungen einer Zeile im Delta?

  Alt 20. Okt 2014, 08:50
Delphi-Version: XE5
Moin!

Ich habe eine Verständnisfrage zur Funktionsweise von "TClientDataSet.UndoLastChange" und bin mir sicher, ihr könnt mir auf die Sprünge helfen.

Angenommen ich habe einen einfachen Datensatz mit zwei Spalten "A" und "B".

Ändere ich in der aktuellen Zeile den Wert der Spalte "A", so wird "TClientDataSet.Delta" ja aus zwei Zeilen bestehen; eine mit dem unveränderten Datensatz und eine mit dem neuen Wert in "A".

Ändere ich nun auch den Wert in "B" der selben Zeile, so bleibt es in "TClientDataSet.Delta" bei den zwei Zeilen - lediglich der neue Wert für "B" ist dort ebenfalls eingetragen.


Wenn ich nun "TClientDataSet.UndoLastChange" (bzw. "IDSCursor.UndoLastChange") aufrufen, wird die Änderung in "B" wieder zurückgenommen und das Delta zeigt mir wieder nur die Änderung in "A".

Soweit so gut - was ich nicht erkennen kann, ist die Systematik, die die Änderungsreihenfolge innerhalb einer Datenzeile (also: "erst 'A' dann 'B'") wiederspiegelt.

Woran erkennt "TClientDataSet.UndoLastChange", was die letzte Änderung in einer bereits veränderten Datenzeile ist? Ist diese Info auch im Delta hinterlegt?

Danke & Grüße
Petersen
  Mit Zitat antworten Zitat