有一个查询:
SELECT id FROM level;如何获取TQuery结果(多个i的字符串)并转换为TStringList?
发布于 2017-09-04 14:06:51
当您在客户端获取所有元组时,您可以通过这种方式访问内部存储(此时没有为内部存储集合实现枚举器,所以这是您使用它时需要写入的最小值):
var
Row: Integer;
begin
for Row := 0 to FDQuery.Table.Rows.Count - 1 do
StringList.Add(FDQuery.Table.Rows[Row].GetData(0)); { ← 0 here is the column index }
end;如果需要操作列名,可以使用另一个GetData方法重载:
var
Row: Integer;
begin
for Row := 0 to FDQuery.Table.Rows.Count - 1 do
StringList.Add(FDQuery.Table.Rows[Row].GetData('ID')); { ← ID here is the column name }
end;或者只询问并记住一次列索引:
var
Col, Row: Integer;
begin
Col := FDQuery.Table.Columns.ColumnByName('ID').Index; { ← get column index by name }
for Row := 0 to FDQuery.Table.Rows.Count - 1 do
StringList.Add(FDQuery.Table.Rows[Row].GetData(Col));
end;GetData存储访问的优点是不移动数据集游标,最后它与FireDAC在使用作为访问器时获取数据的方式相同(在本例中,返回的变体只是隐式强制转换)。
发布于 2017-09-04 13:46:08
yourStringList.Clear;
yourQuery.First;
while not yourQuery.Eof do
begin
yourStringList.Add(yourQuery.FieldByName('id').AsString);
yourQuery.Next;
end;https://stackoverflow.com/questions/46030464
复制相似问题