Hallo
Ich programmierte ein Programm mit Delphi 6, um mittels ADO auf eine Access 97 DB zuzugreifen.
Die Anwendung ist eine MDI Application. Im MDI-Child Form besteht im wesentlichen aus der ADOQuery und einer DBGrid Komponente.
Das komische ist jetzt, dass für das erste MDI-Child fast 2 Sekunden vergehen, bis es erscheint. Bei allen weiteren geht es dann nur noch 0.2 Sekunden. Ich mache dann alle Forms wieder zu und öffne wieder eines und wieder vergehen 2 Sekunden.
Kann mir bitte jemand erklären, wieso das so ist? Was kann man dagegen machen? Denn bei komplexeren Fenstern mit mehreren Grids braucht das öffnen zu lange, dass niemand damit arbeiten kann.
Die Verbindung zur Datenbank macht ich schon beim Programmstart und nicht erst beim öffnen das MDI-Child.
Ich machte jetzt folgenden Trick: Ich öffne jetzt schon im MDI-Form Fenster eine ADOQuery mit der selben Select Anweisung und mit dem Zusatz WHERE (false=true) und lasse diese Query während der ganzen Zeit offen. Damit wird auch das erste MDI-Child Form schnell geöffnet. Aber das kann ja auch nicht die Lösung sein: Erstens muss ich jede Query zweimal machen und zweitens braucht so das Programm länger, bis es gestartet ist.
So, ich hoffe, das diese Informationen ausreichen, damit ihr mir helfen könnt.
Gruss
Markus
Ich programmierte ein Programm mit Delphi 6, um mittels ADO auf eine Access 97 DB zuzugreifen.
Die Anwendung ist eine MDI Application. Im MDI-Child Form besteht im wesentlichen aus der ADOQuery und einer DBGrid Komponente.
Das komische ist jetzt, dass für das erste MDI-Child fast 2 Sekunden vergehen, bis es erscheint. Bei allen weiteren geht es dann nur noch 0.2 Sekunden. Ich mache dann alle Forms wieder zu und öffne wieder eines und wieder vergehen 2 Sekunden.
Kann mir bitte jemand erklären, wieso das so ist? Was kann man dagegen machen? Denn bei komplexeren Fenstern mit mehreren Grids braucht das öffnen zu lange, dass niemand damit arbeiten kann.
Die Verbindung zur Datenbank macht ich schon beim Programmstart und nicht erst beim öffnen das MDI-Child.
Ich machte jetzt folgenden Trick: Ich öffne jetzt schon im MDI-Form Fenster eine ADOQuery mit der selben Select Anweisung und mit dem Zusatz WHERE (false=true) und lasse diese Query während der ganzen Zeit offen. Damit wird auch das erste MDI-Child Form schnell geöffnet. Aber das kann ja auch nicht die Lösung sein: Erstens muss ich jede Query zweimal machen und zweitens braucht so das Programm länger, bis es gestartet ist.
So, ich hoffe, das diese Informationen ausreichen, damit ihr mir helfen könnt.
Gruss
Markus
Comment