首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Delphi FDQuery选择不带列名的行

Delphi FDQuery选择不带列名的行
EN

Stack Overflow用户
提问于 2018-06-10 22:10:46
回答 1查看 1.1K关注 0票数 1

我在一个表单上有一些代码,可以从数据库中的列名创建一组标签

我正在尝试编写另一段代码,该代码使用FDQuery来选择所有记录,然后根据每行中的值创建标签

目前我有以下内容。

代码语言:javascript
复制
  while not FDQuery1.Eof do
  begin
    while recordCount < colTotal do
    begin
      newLabel := TLabel.Create(Self);
      newLabel.Parent := panel3;
      newLabel.Align := TAlignLayout.Top;
      newLabel.Text := FDQuery1.FieldByName('Torque2').AsString;
      newLabel.Margins.Top := 10;
      newLabel.Margins.Left := 10;
      newLabel.Margins.Right := 10;
      inc(recordCount);
      FDQuery1.Next;
    end;
  end;

我如何才能用每一行的结果动态地创建一个标签,而不需要像这里那样实际输入列名"torque2“。

例如,在我的表单上,标签将创建如下所示

代码语言:javascript
复制
row1 
row2 
row3
row4
row5 

因为现在这段代码只是简单地循环一个行值

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 22:13:45

您可以通过属性访问元组值,而不是基于名称的方法,这是一个从0开始的索引集合属性。

不过,FireDAC提供了更高效的数据访问方式。在客户机上获取所有元组后,可以通过以下方式遍历内部数据存储:

代码语言:javascript
复制
var
  S: string;
  Row, Col: Integer;
begin
  for Row := 0 to FDQuery1.Table.Rows.Count - 1 do
    for Col := 0 to FDQuery1.Table.Columns.Count - 1 do
      S := FDQuery1.Table.Rows[Row].GetData(Col);
end;

这是更容易阅读,也节省了相当多的时间,因为它不移动数据集光标。缺点可能是您需要在客户端获取元组。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50784563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档