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