パラメータはそのようには機能しません。彼らはあなたが提供しようとしているのがコンマで区切られた値のリストであることを知りません。 ParamByName('WhatEver').AsString
を設定した場合 またはValue
、それはあなたがそのパラメータに属するすべてを含む引用符で囲まれた文字列を意味すると考えます。つまり、見た目どおりに動作し、IN ('1, 2, 3')
を渡します。 、意図したIN (1, 2, 3)
の代わりに 。
自分で解析して一時テーブルを使用するか、WHERE
を作成する必要があります。 句を動的に連結し、クエリを実行する前に連結します。 (実際には、クエリを動的に作成して、IN
内の各アイテムに新しいパラメーターを作成することができます。 句を入力し、ループして動的に作成された各パラメーターに値を割り当てますが、非常に醜くなります。)