Meine Empfehlung wären ebenfalls Queries, die gezielt Teilmengen abrufen.
Mit Table Komponenten habe ich schon lange nicht mehr gearbeiet, gibt es da sowas wie max-records?
Wenn Du bei Tables bleiben musst/willst, probier doch mal Filter auf PK Felder, die garantiert eine leere Menge ergibt (oder eine garantiert kleine~1 Datensatz z.B...
Im weiteren Programmverlauf muss natürlich was sinnvolles in den Filter rein, Hauptsache, die große Tabellen werden nicht/niemals ungefiltert geöffnet und alles wird geladen.
Ebenso wie
TIBCTable fragt
TIBCQuery nur die Anzahl an Zeilen aus der zugrundeliegenden
DB-Tabelle ab, die im Property
FetchRows angegeben ist, das bei mir defaultmäßig auf 25 steht. Nur bei Abfrage von RecordCount, dem Setzen des Properties
FetchAll oder/und dem Setzen des Properties
QueryRecCount werden alle Datensätze abgefragt, aber außer bei
FetchAll nicht im Speicher behalten. Diese drei Properties stehen bei mir alle auf
False.
Mit dem Umstellen von
TIBCTable auf
TIBCQuery habe ich das goldene Los gezogen, die Startzeit hat sich nun merklich verringert:
Code:
IF NOT DatMod.Verbinden_Datenbank THEN 124
IF NOT DatMod.Verbinden_Tabellen THEN 31
Set_Einstellungen; 2156