![]() |
ADO und Thread
Hallo,
ich habe eine kleine Appliction, die mittels ADO-Komponenten auf eine ACCESS DB zugreift. Alles klappt wunderbar, damit die Anwenung jedoch bedienbar bleibt, soll das Auslesen der ACCESS DB in einem Thread laufen. Dabei erhalte ich nun die Fehlermeldung: "CoInitialize must be called". Ich habe schon etwas über OLE und ActiveX gelesen, aber in meinem Thread funktioniert das leider nicht :( Kann man mir helfen ? Gruß Jacki |
Re: ADO und Thread
Hallo,
der Zugriff auf ADO ist ein Zugriff auf COM-Objekte. Für den Zugriff muss jeder Thread ein eigenes Apartment anmelden. Für das Hauptprgramm sollte das Application.Initialize erledigen. Wenn Du aber einen Thread erzeugst musst Du das selber machen
Delphi-Quellcode:
Hier findest weitere Info's vom COM Guru himself
procedure TMyADOThread.Execute;
begin CoInitialize(nil); // Apartment anmelden try // Hier kann dann Dein Code stehen finally CoUninitialize; // Apartment abmelden end; end; ![]() |
Re: ADO und Thread
Hallo,
vielen Dank für den Tip, ich weder gleich den Umbau starten :coder: Gruß Jacki |
Re: ADO und Thread
Hab ähnliches Problem, wollte eine TADOConnection in einen Thread packen, aber wenn ich die Verbindung öffne, wird der Thread gleich terminiert...
Liegt das auch daran? Muß ich auch so ein ...Apartment anmelden...??? Und wannn genau muß man das machen? Bevor man die schon erstellt, oder erst wenn ich die Verbindung öffnen will? Bye |
Re: ADO und Thread
Zitat:
Zitat:
|
Re: ADO und Thread
Tja ich bekomme immer:
Code:
CoUninitialize Das selbe....
[Fehler] FConThread.pas(76): Undefinierter Bezeichner: 'CoInitialize'
In welcher Unit ist diese Procedure Engebunden? Bye Edit: ActiveX habs gefunden... :coder: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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 by Thomas Breitkreuz