Delphi ist ganz klar auf eine 2-Tier-Architektur aufgelegt.
Hier die Anwendung, dort der Datenbankserver.
Alle Methodenaufrufe sind synchron, d.h. blockierend.
(Ich verallgemeinere hier jetzt etwas, aber das sind ganz grob die Eigenschaften von Delphi)
Wenn man das ändern möchte, müsste asynchrone Funktionen in Delphi einführen oder andere Klimmzüge ausführen die einem das Leben als Programmierer vermiesen.
Ausserdem müssten die Datenbanktreiberschichten ebenfalls überarbeitet werden.
Wenn man Tabellen mit vielen Datensätzen anzeigen möchte, muss man einen Filter davorschalten um die Datenmenge einzuschränken.
Der Benutzer muss also irgendwelche Einschränkungen (z.B. Datumsbereich) vorgeben, bevor er die Daten zu sehen bekommt.
Bei den
ADO-Komponenten kann man bei manchen Servern (eigentlich nur MS
SQL-Server) die CursorLocation auf
clUseServer
stellen.
Dann kehrt die Abfrage relativ schnell mit Daten zurück, aber das Scrollen im DBGrid wird dafür sehr langsam (weil im Hintergrund Daten nachgeladen werden).
Ausserdem wird der Server ziemlich stark beansprucht.