![]() |
Datenbank: ᕦ[ •́ ﹏ •̀ ]⊃¤=[]::::::::> • Version: ┌༼◉ل͟◉༽┐ • Zugriff über: FireDAC
Query nicht schließen wenn ich das Statement ändere
Wenn man z.B. sagt
Delphi-Quellcode:
dann wird
meineQuery.SQL.Text := 'SELECT * FROM myTable';
Delphi-Quellcode:
geschlossen. Wenn man allerdings z.B. nur einen Parameter der Query ändert wird diese nicht geschlossen.
meineQuery
Angenommen ich möchte nur ein "LIMIT 100" einbauen. Effektiv wird das SQL-Statement der Query geändert und sie wird geschlossen. Wie komme ich um so etwas herum? Ich hätte es gerne so wie bei den Parametern: Änderungen haben keine unmittelbaren Auswirkungen sondern erst beim nächsten
Delphi-Quellcode:
der Query.
Refresh()
Bekommt man das hin? |
AW: Query nicht schließen wenn ich das Statement ändere
Wenn du die Query änderst, können auch die Parameter und Felder anders sein. Deswegen wird die Query geschlossen.
Du kannst aber auch das SQL im BeforeOpen setzen. |
AW: Query nicht schließen wenn ich das Statement ändere
Oh, stimmt. Das hört sich gut an, oder BeforeRefresh. Warum hast du immer so simple und doch zielführende Antworten.:thumb:
|
AW: Query nicht schließen wenn ich das Statement ändere
Zitat:
|
AW: Query nicht schließen wenn ich das Statement ändere
Schau Dir mal SQL Fetch, LIMIT und OFFSET an, ich vermute das ist eher was Du suchst? Warum will man ein LIMIT im Refresh ändern....
![]() ![]() |
AW: Query nicht schließen wenn ich das Statement ändere
Zitat:
|
AW: Query nicht schließen wenn ich das Statement ändere
Zitat:
Der Nutzer soll es einstellen können. Zitat:
|
AW: Query nicht schließen wenn ich das Statement ändere
Was ist denn eigentlich der Unterschied/Vorteil von einem refresh? Geht das schneller?
Ich hab irgendwie immer gedacht, das wäre das selbe wie schließen und neu öffnen der Query? |
AW: Query nicht schließen wenn ich das Statement ändere
Für das LIMIT könntest Du doch FetchOptions.RecsSkip und FetchOptions.RecsMax Deines TFDDataSet benutzen, IIRC schließen die die Ergebnismenge auch nicht automatisch.
|
AW: Query nicht schließen wenn ich das Statement ändere
Ja, allerdings scheint FireDAC es nicht zu schaffen (zumindest bei Sqlite) das in die Query einzubauen sondern fordert ALLES an und filtert es dann selbst nachträglich (also client-seitig).
Das dauert nicht nur ewig, sondern wenn die Datenmenge entsprechend groß ist stürzt die Anwendung ab da ihr der Speicher ausgeht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz