mhe hat geschrieben: Di 17. Jun 2025, 12:05
Ich glaub, mit RecNo solltest auf Records mit Löschvormerkung zugreifen können.
...
Ausprobiert, geht nicht, gleicher Effekt. Ich benutze ZEOS.
Jetzt erinnere ich mich, ZEOS arbeitet mit internen Listen. Ich hatte vor Jahren TZAbstractCachedResultSet erweitert um alte Werte anzuzeigen. Ich muss mal schauen wie ich es damals gemacht habe.
Falls jemand vor ähnlichem Problem steht und dieses Thema stirbt, wäre eine einfache Lösung bei TZQuery.OnBeforeDelete-Event die Indizien der gelöschten Zeilen in einer Liste zu speichern.
Nach TZQuery.ApplyUpdates sind die tatsächlich gelöscht, weil man zwischendurch als Benutzer gelöschte Zeilen nicht zurückholen kann. Man könnte noch mit TZQuery.Locate kontrollieren, aber das wäre überflüssig, vielleicht höchstens sinvoll, wenn zwischendurch Exception auftritt oder der Benutzer refresh macht. Das ist mir eben eingefallen, vielleicht die Lösung für mich.
Elegant ist das natürlich, wenn man bei TZUpdateSQL-Events gelösche Index bekommen kann, dann muss man nicht komplette Datentabelle von Anfang bis Ende durchlaufen sondern nur gelöschte und hinzugefügte Zeilen.