AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TClientDataSet.UndoLastChange - Reihenfolge der Änderungen einer Zeile im Delta?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von PeterPetersen · begonnen am 20. Okt 2014 · letzter Beitrag vom 22. Okt 2014
Antwort Antwort
PeterPetersen

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

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

  Alt 20. Okt 2014, 09: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
PeterPetersen

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

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

  Alt 22. Okt 2014, 15:26
... wenn ich mir den Quelltext der midas.dll ansehe, scheint mir die Funktion "DSBASE::GetDelta" bzw. "DSLOG::CompactLog" genau die Informationen aus dem Delta zu entfernen, die ich suche

Merke: Changelog <> Delta

Nun hatte ich die vage Hoffnung, über "DataSnap.DSIntf.CreateDbClientObject" mir Zugriff auf die Funktionen von "DSLOG" zu verschaffen - so wie es ja für "DSBASE" oder "DSCURSOR" gemacht wird. Aber ohne Anpassen des Quelltextes der midas.dll wird das wohl nicht gehen.

Gibt es noch eine andere Möglichkeit, direkt lesend auf das Changelog eines TClientDataSet zuzugreifen?

*Hilfe*

Danke & Gruß
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz