Einzelnen Beitrag anzeigen

Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

[SQL] Problem mit String in IN

  Alt 6. Okt 2004, 10:58
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
  Mit Zitat antworten Zitat