多くの場合、データベースにクエリを実行するときに必要なのは、varcharを含む1つの列だけです。そこで、データベースにクエリを実行し、結果を文字列リストに入れるための優れた関数を作成しました。
function Getdatatostringlist(sqlcomponent, sqlquery: string): TStringlist;
私が今探しているのは基本的に同じ関数ですが、varchar、int、datetimeなど、データのタイプが事前にわからない複数の列を持つ結果の場合です。
ここで使用するのに適したデータ構造の種類。
これが必要な理由は、開いているデータセットで作業しないようにするためです。すべての結果を一時的な構造にフェッチし、データセットを閉じて結果を処理するのがもっと好きです。
Kobiksがメモリデータセットでの使用について返信した後、私は次のことを思いつきました。それは、概念をテストするためにすばやくまとめられます。
procedure TForm1.Button2Click(Sender: TObject);
var
MyDataSet : TAdoDataSet;
begin
MyDataSet := GetDataToDataSet('SELECT naam FROM user WHERE userid = 1', ADOConnection1);
try
Form1.Caption := MyDataSet.FieldByName('naam').AsString;
finally
MyDataSet.free;
end;
end;
function TForm1.GetDataToDataSet(sSql: string; AdoConnection: TADOConnection): TAdoDataSet;
begin
Result := TAdoDataSet.Create(nil);
Result.LockType := ltBatchOptimistic;
Result.Connection := AdoConnection;
Result.CommandText := sSql;
Result.Open;
Result.Connection := nil;
end;
これは基礎となるものだと思います。