【发布时间】:2017-12-04 20:40:57
【问题描述】:
我创建了一个类型
type
TStringArray = array of array of string;
function TDataModule4.GetList(TableName: String): TStringArray;
var
i : Integer;
begin
i:= 0;
with TFDQuery.Create(Nil) do
begin
Connection := ADConnectionMySQL;
SQL.Add(Format('Select * from %s', [TableName]));
Open;
First;
while not Eof do
begin
end;
Free;
end;
end;
我知道使用 FieldByName 获取数据,但我想返回多维数组中的所有数据。我该怎么做?
这是我想要返回的方式:
数组[0]["column1"] = "value1"
数组[0]["column2"] = "value2"
数组[1]["column1"] = "value3"
数组[1]["column2"] = "value4"
数组[2]["column1"] = "value5"
数组[2]["column2"] = "value6"
【问题讨论】:
-
我不明白你在问什么。您已经声明了返回
TStringArray的函数,它再次声明为动态二维数组。使用SetLength()给出数组长度和宽度,并在您的while 循环中填写值。查找动态数组的帮助和SetLength。如果这是问题所在,函数的结果有一个隐含的名称Result。 -
您可能会得到问题的答案,但这里的整体方法很笨拙,大多数人可能会觉得您真正需要的是停下来思考一下您的架构。如果您只需要显示数据,那么使用数据感知组件可能会更容易。否则,如果您正在构建数据模型,那么您可能应该在模型部分多做一些工作——数据库行不是
array of string,它是类型数据的记录。您的数据模型也应该以这种方式考虑它。
标签: arrays delphi multidimensional-array