很多时候,当我们查询数据库时,我们只需要一列带有 varchar。所以我做了一个很好的函数来查询数据库并将结果放在一个字符串列表中:
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;
我认为这是可以建立的。