| LCS hat folgendes geschrieben: |
...Die BDR's werden vom Transaktionsmanagement der Datenbank verwaltet. Dazu steht noch nicht mal was im API-Guide.  |
ha, muß ich denn immer in einem Wespennest rumstochern.

Na gut, dafür wird mirs nie langweilig. Einiges habe ich aber doch gefunden. Aber zu wenig um es hier zu posten. Außer dem hier :
OldValue usw. "stehen nur zur Verfügung falls CachedUpates aktiviert ist, oder bei einem ClientDataSet." Was es genau mit beiden auf sich hat raff ich sowieso noch nicht. Und noch die (wahrscheinliche) Vermutung, daß zu jeder Transaction ein BDR gebildet wird. Es gibt nämlich noch eine Garbage-Collection (Müllsammlung), die irgendwann aus der Interbase-DB entfernt werden sollte. Irgendwie steht das schon alles im Zusammenhang.
folgendes ist mir gelungen (per Codevervollständigung

)
Quelltext
1:
| pFIBDataset1.DataSetField.OldValue |
Weiterhin habe ich folgende Vermutung, wie das ganze abläuft :
Beim Lesen wird zuerst Oldvalue besetzt. In Value werden die Daten editiert. Und zum Schluß in NewValue zwischengespeichert. Die DB prüft nun beim schreiben, ob das OldValue auf der Platte noch den selben Wert hat, wie das im Speicher. Also Lock, vergleichen, abspeichern, oder bei Differenzen : Exception ODER! und da will ich hin: notfalls selber eingreifen. Wurde während des Edit-Vorgangs zwischenzeitlich nichts anderes gespeichert, so wird das OldValue auf der Platte mit dem NewValue ersetzt. Oder es wird der alte Zustand wiederhergestellt. Ähnlich, wie bei einem Rollback. Und da kommt dann wieder der komische BDR ins Spiel.
Vielleicht liege ich da aber auch völlig daneben. Das ganze wäre aber etwas, was im Mehrplatz-Bereich funktioniert.