Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Connection Funktion aus Datenmodul funzt nicht im Thread (https://www.delphipraxis.net/41831-connection-funktion-aus-datenmodul-funzt-nicht-im-thread.html)

Gambit 9. Mär 2005 11:52

Datenbank: MySQL • Version: 4.023 • Zugriff über: Zeos

Connection Funktion aus Datenmodul funzt nicht im Thread
 
Hallo,

ich habe in einem Datenmodul(Unit DB_DM) eine Funktion, die eine Connection zur Datenbank aufbauen soll:

Hier mal etwas vereinfacht dargestellt. Ich übergebe nur die Parameter für die Connection und setze Connectet auf true:

Delphi-Quellcode:
function TDB_DataModul.createCon(Con: TZConnection; Database, Host, Protocol, User, Password: String; Port: Integer): boolean;
begin
    Con.HostName:= Host;
    Con.Port:= Port;
    Con.User:= User;
    con.Password:= Password;
    Con.Protocol:= Protocol;
    Con.Database:= Database;
    Con.Connected:= true;
end;
jetzt möchte ich diese Funktion in einem Thread aufrufen und habe dafür eine seperate Unit angelegt.
Leider kenne ich mich in der Thread Programmierung noch nicht so aus also bitte nicht lachen...
Ich hab's mal so versucht:

Delphi-Quellcode:
unit ConThread;

interface
uses Classes,windows, DB_DM, ZConnection, ZAbstractRODataset, ZAbstractDataset,
  ZDataset;
type TConnectThread= class(TThread)
  public
    Con :TZConnection;
    Database, Host, Protocol, User, Password: String;
    Port: Integer;
  protected
    procedure Show;
    procedure Execute; override;
  end;

implementation
uses mainForm;

procedure TConnectThread.Execute;
begin
  Synchronize(Show);
  if Terminated then exit;
end;

procedure TConnectThread.Show;
begin
  DB_DataModul.createCon(Con, Database, Host, Protocol, User, Password, Port);
  terminate;
end;

end.

In einer anderen Form versuche ich den Thread zu starten:

Delphi-Quellcode:
MDBCon:= TConnectThread.Create(false);
    MDBCon.Con:= DB_DataModul.ZConDBMaster;
    MDBCon.Database:= ini.MDBName;
    MDBCon.Host:= ini.IPAddressInet;
    MDBCon.Protocol:= 'mysql-4.0';
    MDBCon.User:= ini.UserName;
    MDBCon.Password:= ini.UserPass;
    MDBCon.Port:= 3306;
    MDBCon.FreeOnTerminate:= true;
Dabei bekomme ich nun eine Zeos-Exception: "Requested Databasedriver not found"

Kann mir da mal jemand auf die Sprünge helfen?

Gruß

Gambit

Gambit 9. Mär 2005 12:33

Re: Connection Funktion aus Datenmodul funzt nicht im Thread
 
Hmm, war ein Irrtum, der Thread ansich(mag er auch nicht ganz richtig programmiert sein) läuft schon so als solches...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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