Nimm lieber mal 'ne TADODataset-Kompo:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| AdoDS.Active := false; AdoDS.Close; AdoDS.Command := 'SELECT Sum(Status) AS [Summe von Status], Count(Status) AS [Anzahl von Status], Type,' + ' Min(Uhrzeit) AS [Min von Uhrzeit], Max(Uhrzeit) AS [Max von Uhrzeit]') + ' FROM tblPMJ_Baugruppen' + ' WHERE (((Uhrzeit)>= ' + tmpVon + ' And (tblPMJ_Baugruppen.Uhrzeit)<=' + tmpBis + '))' + ' GROUP BY Type, Maschine' + ' HAVING (((Maschine)='+ SQL_Maschine +'))'; AdoDS.Active := True; |
Und dann überleg dir mal ob du nicht parametrisierte Abfragen verwenden willst.
Deine jetzige Lösung ist 1A zu verwenden um per SQL-Injection die Datenbank zu zerschießen. Da kann man nur froh sein das du eine Lokale DB verwendest und keinen "richtigen" SQL-Server.
Ach ja: Der zusätzliche Aufruf von ExecSQL ist unötig und nur bei INSERT/DELETE/...-"Abfragen" nötig die keine Ergebnisliste liefern. Bei einer SELECT-Anweisung würde sie dann nochmal ausgeführt ohne das du das Ergebnis zu Gesichte bekommst.