Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankverbindung an ddl übergeben (https://www.delphipraxis.net/146809-datenbankverbindung-ddl-uebergeben.html)

sebi87 27. Jan 2010 10:04

Datenbank: Firebird • Version: 2.0 • Zugriff über: ZeosLib

Datenbankverbindung an ddl übergeben
 
Hallo Leute,

ich versuche mal mein Problem zu erklären.
Ich habe eine Software zur Mitgiederverwaltung geschrieben, diese verwendet dll als Plugins. Die dll enthalten alle Formulardaten. Das Plugin wird dann beim Login geladen.

Mein Problem ist jetzt das ein Plugin auch Daten aus der Datenbank mit einer Query verarbeiten soll. Die Datenbankverbindung (ZConnection) ist allerdings im Hauptprogramm auf dem MainFormular.

Wie kann ich die Datenbankverbindung an die dll übergeben um damit arbeiten zu können?


Grüße Sebastian

hoika 27. Jan 2010 11:13

Re: Datenbankverbindung an ddl übergeben
 
Hallo,

gar nicht,

jedes Plugin benutzt seine eigene ZConnection.
So mache ich das.

Das bissel Zeit für den 2. Connect ist mir lieber,
als ewig Speicherfehler zu suchen (die bei DLL-Übergabe passieren könnten).

Wenn du das wirklich willst, wie genau liegt das Problem?
Übergib die ZConnection als Parameter an die aufzurufende DLL-Funktion.
Vorher ein ZConnection.Commit machen.

Ich rate aber wie schon gesagt davon ab.


Heiko

sebi87 27. Jan 2010 11:17

Re: Datenbankverbindung an ddl übergeben
 
Hallo,

ich würde das ungern über eine 2. ZConnection machen.

Wie muss ich die ZConnection dann an die DLL übergeben? Auch wenn es Gefahren und Speicherfehler birgt.

Grüße
Sebastian

hoika 27. Jan 2010 11:22

Re: Datenbankverbindung an ddl übergeben
 
Hallo,

wie sieht denn dein DLL-Aufruf aus ?

Ich mach das so

Delphi-Quellcode:
Client
procedure ExecuteForm1(theConnection: TZConnection);
begin
  LoadLibrary
  GetProcAddress

 ...

  Dll_Methode(theConnection);

end;

DLL
procedure Dll_Methode(theConnection: TZConnection); export;
var
  Form: TFormX;
begin
 // create
  Form.ZConnection:= theConnection;
end;

Ein kleiner Tip, es nicht zu machen ;)
1


#Update#
Zeos in DLL

Heiko

Bernhard Geyer 27. Jan 2010 12:14

Re: Datenbankverbindung an ddl übergeben
 
Zitat:

Zitat von sebi87
Wie muss ich die ZConnection dann an die DLL übergeben? Auch wenn es Gefahren und Speicherfehler birgt.

Sowas funktioniert nur bei Verwendung von "gemeinsame Laufzeitbibliotheken".


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz