Hallo zusammen,
ich benutze
mySQL mit den ZEOS-Komponenten. Es geht um folgendes
SQL-Statement:
Delphi-Quellcode:
frmMain.ZQPOS.SQL.Clear;
frmMain.ZQPOS.SQL.Add('SELECT p.posid, p.posbez, ');
frmMain.ZQPOS.SQL.Add('SUM(JAN) AS JAN, SUM(FEB) AS FEB, SUM(MAR) AS MAR, SUM(APR) AS APR, SUM(MAI) AS MAI, SUM(JUN) AS JUN, SUM(JUL) AS JUL, SUM(AUG) AS AUG, SUM(SEP) AS SEP, SUM(OKT) AS OKT, SUM(NOV) AS NOV, SUM(DEZ) AS DEZ, ');
frmMain.ZQPOS.SQL.Add('SUM(JAN_1) AS JAN_1, SUM(FEB_1) AS FEB_1, SUM(MAR_1) AS MAR_1, SUM(APR_1) AS APR_1, SUM(MAI_1) AS MAI_1, SUM(JUN_1) AS JUN_1 ');
frmMain.ZQPOS.SQL.Add('FROM positionen p, daten_prognose i ');
frmMain.ZQPOS.SQL.Add('WHERE p.pgid=:pgid AND p.posid=i.position AND i.pagid IN (:pagid) ');
frmMain.ZQPOS.SQL.Add('GROUP BY p.posid');
Es geht um den Parameter ":pagid" in der vorletzten Zeile. Wenn ich dort per Hand schreibe
... IN ("PIM5231","PIM5244")
funktioniert es.
Benutze ich die Parameterfunktion
frmMain.ZQPOS.ParamByName('pagid').AsString:=strDataID;
wobei strDataID einen String aus der
DB enthält, der dort als "PIM5231","PIM5244" hinterlegt ist, funktioniert es nicht - die Datenmenge ist dann "0". Das selbe Ergebnis erhalte ich auch, wenn in strDataID 'PIM5231','PIM5244' steht.
Irgendeine Idee?
Gruß Igotcha