Einzelnen Beitrag anzeigen

Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
774 Beiträge
 
#6

AW: FetchAll mit Filter und SetRange

  Alt 15. Mär 2025, 10:34
Wenn FetchAll = false, wird nur eine Teilmenge der Daten vom Server geholt. Der "Rest" erst bei Bedarf. Dieser Bedarf tritt ein, wenn ein Filter gesetzt wird. Dann werden alle Daten benötigt, da der Filter ja auch eine mehr oder weniger große Menge des "Restes" betreffen kann. Das beim Setzen der Filters erforderliche Nachladen der hier ja wohl eher nicht unerheblichen Datenmenge kann dann schonmal etwas dauern. Und wenn die Daten dann da sind, muss die Filterbedingung für jeden Satz geprüft und ggfls. angewandt werden. Und das kann dann schonmal etwas dauern -> Die Anwendung friert ein.
Also wenn man die Kombination Firebird, FireDAC und Server-Cursor verwendet und einen Filter vorm Öffnen der Tabelle setzt, werden nur die benötigten Daten geholt. Die Table-Komponente verhält sich da also wie eine Query mit Where-Bedingung...

Wir hatten nämlich auch das Problem, dass wir eine alte BDE-Anwendung migriert haben und da sehr viele Tabellen-Komponenten mit Filter vorhanden waren, die wir nicht alle auf Query umstellen wollten/konnten.
  Mit Zitat antworten Zitat