Ich habe eine permanente
MySQL-Abfrage für mein Remote-Tool. Diese habe ich daher in einen Thread verpackt.
Ich verwende die Komponentensammlung "
MySQL Direct".
Meine Tests liefen über die
MySQL-Verbindung zu meinem "
localhost" sehr flüssig. Nachdem ich nun eine Verbindung zu meinem Server online aufbaue, bremst die
MySQL-
Query das Programm trotz allem aus.
Delphi-Quellcode:
type
TForm1 =
Class( TForm )
ThreadCommand : TThreadCommand;
MySQL : TOMySQL;
// Ein Wrapper für 'TMySQLClient' von MySQL Direct
end;
// ...
Self.ThreadCommand := TOThreadCommandOrder.Create( True );
Self.ThreadCommand.FreeOnTerminate := True;
Self.ThreadCommand.Priority := tpNormal;
Self.ThreadCommand.MySQL := Self.MySQL;
// ...
procedure TThreadCommand.ProcessCommand
( );
var
MySQLResult : TOMySQLResult;
// Ein Wrapper für 'TMySQLResult' von MySQL Direct
begin
if Assigned( Self.MySQL )
then
begin
MySQLResult := Self.MySQL.Query( '
SELECT * FROM `ubig_orders` LIMIT 0, 1' );
// ...
end;
end;
Ich kann versichern, dass das Problem nicht an den Wrappern für die
MySQL-Klassen liegt. Ich habe den Quellcode in den Wrapper geprüft und festgestellt, dass der Aufruf von TMySQLClient.Query( ) bereits ausbremst.
Liegt es nun an meiner Art und Weise den Thread zu verwenden, was ich mir nicht vorstellen kann. Oder ist die
MySQL Direct Komponente problematisch? Normalerweise sollte ich doch von dem Prozess im Thread nichts mitbekommen.