Autor Beitrag
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 23.05.03 10:09 
Hallo!

Ich muss in einem BeforePost-Ereignis mehrerer TClientdatasets prüfen, ob sich der Wert eines bestimmten Feldes geändert hat. Weiss jemand, wie man das anstellt? Die Daten werden ja zwischengespeichert, schliesslich wird beim Canceln ja der ursprüngliche Wert wiederhergestellt.

OldValue liefert einem leider den Wert, den der Datensatz beim Holen von der Datenbank hatte. Wenn ich also einen Wert von 0 am Anfang habe und diesen auf 1 ändere und poste, so ist bei erneuter Änderung Oldvalue leider noch immer 0, solange ich nicht vorher ApplyUpdates aufrufe.

Cu,
Udontknow
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: So 25.05.03 17:02 
kann dir grad nicht ganz folgen, aber ich versteh das so:

Wenn du jederzeit (solange nicht ApplyUpdate) sehen kannst, wie der ursprüngliche Wert in dem Feld war, dann hast du doch deinen Vergleich, ob sich was geändert hat!?! :?
Udontknow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 26.05.03 06:57 
Leider nicht.

Bsp: Ich hole von der DB einen Datensatz ab, dessen Feldwert für das Feld Name "Klaus" ist. Nun steht in OldValue also Klaus drin. Ändere ich nun den Datensatz ab und schreibe Peter rein und poste, ist OldValue immer noch Klaus. Wenn ich dann in den Edit-Modus gehe und aus Peter eine Gabi mache, ist Old Value leider Gottes immer noch "Klaus". Erst wenn ich alle Werte wieder zurückschreiben lasse (ApplyUpdates), nimmt OldValue den aktuellen Wert an.

Cu,
Udontknow
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 26.05.03 10:49 
Hallo,

wie währe es wenn du mit einem zusätzlichen Query dirckt vor den Post noch mal dein OldValue überprüfst?

Gruß
Klabautermann
Udontknow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 26.05.03 11:08 
Wie soll ich mit einer anderen Query auf eine Änderung prüfen, die noch gar nicht in der Datenbank eingetragen ist? Es ist schliesslich eine Clientdatenmenge, und bevor ich nicht ApplyUpdates mache, landet nichts in der Datenbank, auch wenn ich schon 50x editiert und 200 neue Datensätze eingefügt habe.

PS: Nein, ich kann leider nicht jedes Mal AfterPost ApplyUpdates aufrufen.

Cu,
Udontknow