以下の例のように、「in」を使用するには、BDE を使用して Delphi の SQL にパラメータを渡す必要があります。
select * from customers where id in (:p_in)
渡す必要があります: p_in 顧客のリスト。しかしQuery.ParamByName.('p_in').AsString: = '1, 2,3 ',
、それはうまくいきませんでした..配列を作成する必要がありますか? またはAsVariantで渡されましたか?
以下の例のように、「in」を使用するには、BDE を使用して Delphi の SQL にパラメータを渡す必要があります。
select * from customers where id in (:p_in)
渡す必要があります: p_in 顧客のリスト。しかしQuery.ParamByName.('p_in').AsString: = '1, 2,3 ',
、それはうまくいきませんでした..配列を作成する必要がありますか? またはAsVariantで渡されましたか?
BDE は推奨されていないため、パラメーターの置換が可能な最新のコンポーネントの使用を検討してください。例:
SomeDataSet.SQL.Add('select foo from bar where baz in (:TESTIDS)');
SomeDataSet.DeclareVariable('TESTIDS', otSubst); // <- this does the trick
// Place here some loop that fills the list of test-id separated by a ","
// And then:
SomeDataSet.SetVariable('TESTIDS', myIDList); // Drop the list into the variable
コンポーネントの製造元が異なれば、これに異なる名前が使用される場合があります。
これを試して :
p_in : String ;
for i := 0 to Customerlist.count do
p_in := p_in +Customerlist[i] + ',';
MyQuery.text := 'select * from customers where id in (' + p_in + ' )' ;