Einzelnen Beitrag anzeigen

Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Connection Funktion aus Datenmodul funzt nicht im Thread

  Alt 9. Mär 2005, 12:52
Datenbank: MySQL • Version: 4.023 • Zugriff über: Zeos
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
  Mit Zitat antworten Zitat