Hier mal eine kurzer Ausschnitt aus meinem schlauen Buch.
Zitat:
Über die TIBTransaction-Methode Commit wird ein sogenannter Hard-Commit ausgelöst, der die aktuelle Ergebnismenge der Select-Abfrage auf dem Interbase-Server verwirft. Ab diesem Zeitpunkt gib es also keine Datenmenge mehr, die IBX anzeigen kann. Um das automatische Schließen der TIBCustomDataset-Nachfolger zu verhindern, muß man dafür sorgen, dass die Ergebnismenge auf dem Server offen bleibt. Durch dem Aufruf der Methode CommitRetaining wird dies erreicht. Der Interbase beendet zwar die Transaction und startet eine neue Transaction, es werden aber automatisch alle Resourcen der alten Transaction inklusive der Ergebnismenge in den Kontex der neuen Transaction übernommen.
Quelle: Interbase Datenbankentwicklung mit Delphi (Andreas Kosch)
@HaJo: Das sollte eigentlich alle deine Fragen beantworten, Du arbeitest einfach mit einer alten Datenmenge.
Um die aktuelle Datenmenge aus der
DB zu erhalten mach ein Commit und öffne danach die Transaction und sende ggf. eine neue Abfrage an die
DB, dann sollten deine Daten auf dem neusten Stand sein.