![]() |
ADO-Komponenten initialisieren
Hallo
Ich benutze in einem fensterlosen Programm (Treiber) ADO-Komponenten (TADOQuery). Bislang funktionierten meine Abfragen nicht. Irgendwo habe ich nun aber gelesen, dass ich folgenden Code einfügen muss:
Delphi-Quellcode:
Und siehe da... alles funktioniert! Ich frage mich bloss warum? Bei einem Programm mit Fenstern muss ich ja auch nichts initialisieren...
CoInitFlags:= COINIT_MULTITHREADED;
TProcedure(System.InitProc); es dankt und grüsst Tom |
Re: ADO-Komponenten initialisieren
Bei einem "Programm mit Fenstern" wird alles nötige in Application.Initialize durchgeführt.
Damit du ADO verwenden kannst, muß das COM-Subsystem für deine Anwendung initialisiert sein. Dies geschieht durch die Win32-API-Funktionen CoInitialize. Am Ende des Programms (oder wenn COM nicht mehr benötigt wird) sollte die Abmeldung mittels CoUninitialize erfolgen. |
Re: ADO-Komponenten initialisieren
Hallo
Danke für Deine Infos... Ist einleuchtend. Aber ich rufe doch CoInitialize gar nicht auf?!? Oder mach' ich das implizit durch
Delphi-Quellcode:
:gruebel:
TProcedure(System.InitProc);
Gruss Tom |
Re: ADO-Komponenten initialisieren
Zitat:
Aber bei einer "Nicht-Fenster"-Anwendung würde ich nicht System.InitProc aufrufen sondern direkt CoInitialize. (Ich denke die "Restaufgaben" von System.InitProc sind in deinem Fall nicht nötig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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-2025 by Thomas Breitkreuz