Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [FMX] Live-Bindings Refresh (https://www.delphipraxis.net/210853-%5Bfmx%5D-live-bindings-refresh.html)

Medium 22. Jun 2022 11:07

[FMX] Live-Bindings Refresh
 
Moin!

Ich habe ein paar StringGrids, die ich mittels Live-Bindings an jeweils eine Query-Komponente angebunden habe. Nach Programmstart wird auch alles brav in den Grids angezeigt.

Leider aber scheinen Änderungen in der DB, die zur Laufzeit von außerhalb passieren, nicht geupdated zu werden, selbst wenn ich in einem Timer periodisch die Queries refreshe. Eine Refresh oder UpdateData Methode o.ä. habe ich für die BindSource und BindingsList nicht finden können.

Wie muss man das machen?

(Delphi 10.2.3, MyDAC)

Edit: Aha! Das geht an sich schon, allerdings werden Lookup-Felder nicht mit aktualisiert. Also kein Problem mit LiveBindings, sondern die Frage, die man bei einem Query.Refresh auch die darin enthaltenen Lookup-Felder updaten kann!
TMyQuery.AutoCalcFields ist auf True, aber das macht sie offenbar nicht.

(Leider passt der Titel jetzt überhaupt nicht mehr :( )

Edit 2: Ein .Refresh scheint nicht zu reichen, man muss die Query schließen und wieder öffnen. Bischen nervig, weil man dann immer den Cursor in den Grids selbst auf den zuletzt selektierten Datensatz bringen muss. Ich fürchte das wird spätestens dann eklig, wenn diese voll genug sind dass man darin scrollen muss. Daher würde mich eine andere Lösung nach wie vor sehr interessieren!

Edit 3: Thema ist durch. Habe alle Lookup-Felder durch joins in meinen Abfragen ersetzt. Diese werden bei einem Refresh wenigstens zuverlässig geupdated. Es kam nämlich noch ein anderes Problem dazu: Open/Close einer Query mit Lookups führt dazu, dass auch die referenzierten Datasets beeinflusst wurden - war ich gerade dabei ein solches zu bearbeiten, oder habe grad frisch eine Zeile eingefügt aber noch nicht geposted, wurde ich durch das Open/Close der anderen Query prompt aus dem Edit-Mode geworfen. (Und das mit dem Scrollen war natürlich auch ein Problem. Die Grids sind immer wieder an den Anfang geworfen worden.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz