Ach Gott, ja....
Ich verwende ein MemDataset. Dort kopiere ich die Daten vom Server rein (Die Tabelle). Dann kann ich ändern, wie ich lustig bin (die Tabelle hat noch eine weitere Spalte 'Modified'). Beim Klick auf 'OK' werden die geänderten (Feld 'Modified'= True) Zeilen per handgebissenem
SQL-INSERT wieder zurück geschrieben.
Das ließe sich mit einem TClientDataset auch machen.
Wie greifst Du drauf zu? Mit
ADO? Da kann man den LockType of 'ltBatchOptimistic' setzen, dann ist das soetwas wie 'Cached updates' bei der alten
BDE-Krücke. Auf jeden Fall werden die Änderungen nicht sofort zurückgeschrieben. Das erledigst Du mit 'ApplyUpdates'. Dann hättest du wieder das gleiche Problem, aber Du kannst dann selbst durch die Tabelle laufen und die Änderungen wie oben beschrieben (handgebissenes INSERT-Statement
) zurückschreiben.
Mittlerweile tendiere ich (außer bei 08/15-Tabellen) sowieso zu dieser (Memdata)Lösung, weil man einfach flexibler ist. Und schneller ist es auch.
Welche
DB verwendest Du? Bei
MSSQL gibt es 'Updateable Views'. Die kann man mit einem 'INSTEAD OF' Trigger versehen und dann überlistet man quasi
ADO/
BDE oder wen auch immer.
Hi daddy, guter Vorschlag.