↓のことをやりたいわけですが、逐一処理で非効率の感があります。
StringListに一括して取り込むことは出来るものですか?
var St:TStringList;
St:=TStringList.create;St.clear;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Add('select Code from Mytable');
ADOQuery1.Open
while not ADOQuery1.eof do begin
St.add(ADOQuery1.fieldbyname('Code').asstring);
ADOQuery1.Next;
end;
ADOQuery1.Close;
カンマ区切りの文字列を作成して、
TStringListのCammatextプロパティに代入すると出来ます。
HOta様ありがとうございました。
例えば、
'select * from Mytable2 where Code2 in (select Code from Mytable where 〜)';
のようなselect文があるとしますと、
in 以降のselect文で得られるCodeの集合がTString型であれば、
while文で回して1件ずつレコードを取って来ることなく、
St.addstring(Codeの集合)
で出来るんじゃないかと思ったわけです。
>逐一処理で非効率の感があります。
とのことですが、nuclei さんが最初に書かれたコードが
一番良い方法かと思います。
>while文で回して1件ずつレコードを取って来ることなく、
>St.addstring(Codeの集合)
>で出来るんじゃないかと思ったわけです。
多分、できないと思います。
igy様、ありがとうございました。
Access-jetで似たような機能があった気がしたので、ADOを調べてみます。
ツイート | ![]() |