Da nur eine einzige globale Instanz der TMySQLUniProvider
Klasse erstellt wird, kann ich mir gut vorstellen, dass es hier kracht, wenn diese nicht thread-safe ist und die in den Threads erstellten Klassen da irgendwie indirekt drauf zugreifen.
Hab ich da was übersehen? In dem Zweiten Sourcecode hat jeder Thread eine eigene Connection und eine eigene
Query?
Zitat:
Delphi-Quellcode:
procedure TThread1.Execute;
var DBConnection: TUniConnection; DBQuery: TUniQuery;
begin
while not Terminated
do
begin
DBConnection:=TUniConnection.Create(
nil);
DBConnection.Server:='
172.16.6.50';
DBConnection.Port:=3306;
DBConnection.Username:='
root_copy';
DBConnection.Password:='
password';
DBConnection.ProviderName:='
MySQL';
DBConnection.Database:='
testdb';
DBConnection.Connect;
if DBConnection.Connected
then
begin
DBQuery:=TUniQuery.Create(
nil);
DBQuery.Connection:=DBConnection;
DBQuery.SQL.Text:='
INSERT into test SET datum=NOW(), thread=1;';
DBQuery.Execute;
DBQuery.Free;
DBConnection.Close;
end;
DBConnection.Free;
sleep(2000);
end;
end;
Gruß
K-H