ich hab den Fehler gefunden. die Parameter waren an der falschen Stelle. Dann habe ich das Statement noch so umbauen müssen
Delphi-Quellcode:
SQLQuery1.SQL.Add('SELECT nagios_services.display_name, sum(TIME_TO_SEC(TIMEDIFF(nagios_servicechecks.end_time, nagios_servicechecks.start_time))) as ausfallzeit ');
SQLQuery1.SQL.Add('FROM nagios_hosts ');
SQLQuery1.SQL.Add('inner join nagios_services on nagios_services.host_object_id = nagios_hosts.host_object_id ');
SQLQuery1.SQL.Add('inner join nagios_servicechecks on nagios_servicechecks.service_object_id = nagios_services.service_object_id ');
SQLQuery1.SQL.Add(imc);
SQLQuery1.SQL.Add('where nagios_services.display_name like ' + quotedstr(like_service));
SQLQuery1.SQL.Add(' and nagios_servicechecks.state = 2 and ');
SQLQuery1.SQL.Add('TIME_TO_SEC(TIMEDIFF(now(), nagios_servicechecks.start_time)) < ' + start_crit + ' ');
SQLQuery1.SQL.Add('group by nagios_services.display_name ');
SQLQuery1.SQL.Add('having sum(TIME_TO_SEC(TIMEDIFF(nagios_servicechecks.end_time, nagios_servicechecks.start_time))) > ' + sum_dif_s_e);
mit einem Add klappte es nicht.
Nun habe ich aber das Problem das das "SQLQuery1.RecordCount" mir die falsche Anzahl an Datensätzen zurück gibt.
Ich bin Deinem Rat gefolgt und gebe mit das Statement an der Konsole aus. mit diesem erhalte ich im
MYSQL Query Browser z.B.: 0 Datensätze. in meinen Delphi Programm mit dem gleichen Statement sagt mein Record Count aber 40!
Wie kann das den sein?