Du übergibst einen String, und der wird entsprechend eingetragen. Aber leider wird daraus nicht das erwartete Statement.
Ich umgehe dieses Problem immer dadurch, daß ich das
SQL-Statement einfach komplett neu baue ohne Parameter-Übergabe, da ich in der Vergangenheit häufiger Ungereimtheiten bei der Verwendung von Parametern bei
ADO feststellen mußte. Ich speichere mir dazu den SELECT-Teil, den FROM-Teil, den WHERE-Teil ohne die entsprechende Zeile mit dem Parameter sowie den Order-Teil in eigene Konstanten, und füge Sie dann in der Eigenschaft
SQL zusammen, nachdem ich die Parameterliste zusammengestellt habe. Etwa so:
Delphi-Quellcode:
const
cSELECT = 'SELECT *'; // SELECT-Teil
cFROM = 'FROM Artikel'; // FROM-Teil
cWHERE = 'WHERE Bezeichnung = ''Artikel'''; // WHERE-Teil ohne Parameter-Liste
cORDERBY = 'ORDER BY Artikelnr'; // ORDER-Teil
cCR =#13#10;
begin
...
AdoDataSet1.CommandText := cSELECT + cCR + cFROM + cCR + cWHERE + cCR + 'AND Kategorie_Id IN (1,2,3,4,5)' + cCR + cORDERBY;
AdoDataSet1.Open;
...
end;
Grüße
Mikhal