Der Netzwerkverkehr ist nicht das Problem.
Aber: wenn ich ChachedUpdates deaktiviere, kann ich gar nicht mehr (einfach) sehen, wenn es (noch nicht per "Commit" bestätigte) Änderungen in den Queries ggü. der Datenbank gibt - und schon gar nicht,
was genau geändert ist (das versuche ich nämlich auch noch optisch darzustellen - über TField-Vergleiche).
Um das ohne CachedUpdates hinzubekommen, müsste ich mir dann den ursprünglichen Dateninhalt merken (eigene ReadOnly-DataSet?) und mit den aktuellen Daten vergleichen...
Das ist irgendwie auch keine Lösung
Ich versuche jetzt mal, das durch Eure Kommentare gelernte (oder herausgefundene) umzusetzen und schaue mal, ob ich eine vernünftige Erkennung von Änderungen hinbekomme...
...weitere Anmerkungen / "Stupser"
sind gern gesehen!
Wenn du Transaktionen verwendest, sieht man mit InTransaction, ob das noch aktiv ist.
Um auf Feldebene zu sehen, was sich geändert hat, musst du meines Wissens immer mit der
DB vergleichen. Eine Liste der betroffenen Datensätze muss in jedem Fall selbst mitführen. Ich wüsste zumindest nicht, wie man an eine Liste auf Basis von UpdatesPending kommen soll. Allerdings hatte ich auch noch nie den Bedarf. Vielleicht wäre es sinnvoll, die Daten in einem ClientDataSet zu verwalten, statt direkt mit der
DB zu kommunizieren. Du willst die Daten ja sowieso erst nach Bestätigung durch den Anwender an die
DB schicken. Da bietet sich so eine Zwischenschicht schon an.