Guten Morgen,
folgende Situation: TDBGrid mit TDataSource mit TUniQuery als Dataset.
Wie aktualisiert man jetzt zuverlässig die Datenmenge?
Eigentlich ja mit "
Query.Refresh". Allerdings hat mein Kollege den (evtl. Irr-)Glauben, dass das nicht immer funktioniert, was wir aber noch nicht nachstellen konnten.
Laut Delphi-Hilfe ist das auch berechtigt:
Anmerkung: Die Methode Refresh funktioniert nicht bei allen von TDataSet abgeleiteten Klassen. Insbesondere TQuery-Komponenten unterstützen Refresh nicht, wenn die Abfrage nicht "live" ist. Um ein statisches TQuery-Objekt zu aktualisieren, schließen und öffnen Sie die Datenmenge.
Was ist der Unterschied zwischen "live" und "statisch" in diesem Fall?
Ein Close und Open der
Query hat natürlich zur Folge, dass z.B. AfterOpens der
Query ausgeführt werden, das Grid neugezeichnet wird, man die letzte ausgewählte Zeile erneut suchen muss, etc.