![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: Zeos
Zeos ZConnection in MainApp und DLLs
Hallo,
hat jemand von eucht schon einmal Erfahrungen gesammelt mit Zeos Komponenten und DLLs? Ich habe das Problem, das ich beim schliessen der DLL bzw. dem Freigeben des Datenmodules/ZConnection eine Exception bekomme. Zitat:
Starte ich jetzt eine DLL, so funktioniert dies auch noch, wenn die DLL als Application gestartet ist, kann ich mit beiden auf die Datenbank zugreifen. Starte ich die DLL als ShowModal, so klappt dies auch noch. Sobald ich aber die DLL schliesse kommt obengenannte Exception. In meiner MainApp, kann ich nach weg klicken der Exception jedoch weiter mit der Datenbank arbeiten und auch ohne Probleme die DLL wieder aufrufen und dort auch wieder auf die DB zugreifen. Nutze das auch mit MSSQL, dort geht dies nur wenn ich über den ODBC Treiber gehe. Dies will ich bei MySQL allerdings vermeiden. Habe ich dabei etwas falsch gemacht, oder können die DLLs das vllt. nicht oder gar die Komponente? Jede DLL sowie MainApp greifen auf das selbe Datenmodul zurück. Als ShowModal
Delphi-Quellcode:
Als Application
procedure Execute; stdcall;
begin DataModule2 := TDataModule2.Create(nil); Form2 := TForm2.Create(Form2); try Form2.ShowModal; finally Form2.Free; DataModule2.Free; end; end;
Delphi-Quellcode:
Weiß hier jemand evtl. eine Lösung?
procedure Execute; stdcall;
begin DataModule2 := TDataModule2.Create(nil); Application.Initialize; Application.CreateForm(TForm1, Form1); //Application.CreateForm(TDataModule2, DataModule2); Application.Run; DataModule2.Free; end; Gruß Daniel |
Re: Zeos ZConnection in MainApp und DLLs
Tausch du "lebende" Objekte zwischen DLL und Exe aus?
Was ist wenn du in der DLL expliziet die DB-Verbindung schließt (Hatte auch schon mal Probleme mit DB-Verbindungen die erst im Destruktor (des Hauptfensters) geschlossen wurden)? |
Re: Zeos ZConnection in MainApp und DLLs
Nein ich tausche keine "lebenden Objekte" die Execute Procedure ist eigentlich alles was an der DLL
ausgeführt wird. Normal brauche ich mich bei einem Datenmodul doch nicht um soetwas zu kümmern. Kann es aber mal eben Fix testen. Das was in der Execute Procedure zu finden ist, ist eigentlich alles was ich an dem Datenmodul, bzw der Connection mache. Selbst wenn ich die Connection schliesse bleibt die Fehlermeldung. Ich raff das einfach nicht :( [edit]Habe das Datenmodul komplett entfernt und auf die Form einfach nur mal eine ZConnection gesetzt im OnClose der Form die Verbindung getrennt, der Fehler bleibt jedoch.[/edit] |
Re: Zeos ZConnection in MainApp und DLLs
Hallo,
also mit deiner globalen Variable DataModule2 bekomme ich gleich Bauschschmerzen. Zumindestens in der DLL würde ich die als lokale Variable definieren, und z.B. per Form1.SetDataModule setzen. Heiko |
Re: Zeos ZConnection in MainApp und DLLs
Siehe das Edit meines letzten Postings.
Dort existiert kein Datenmodul mehr, sondern habe direkt eine Connection auf der Form. Ich weiß nicht was daran so falsch sein sollte, die Variable des Datenmodules zu nutzen? Ich habe sie so nicht weiter als Variable declariert. |
Re: Zeos ZConnection in MainApp und DLLs
Schande über mein Haupt...
Das Problem hat sich von alleine gelöst. Es lag nicht an der ZConnection, etwas anderes an dem Projekt stimmte nicht und darum kam immer die Exception. Nach einem neubau der DLL war der Fehler verschwunden. Gruß Daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 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