Delphi FDQuery выбирает строки без имени столбца - PullRequest
0 голосов
/ 10 июня 2018

У меня есть некоторый код в форме, который создает группу меток из имен столбцов в базе данных

Я пытаюсь написать еще один фрагмент кода, который использует FDQuery для выбора всех записей, а затем создатьметки, основанные на значении в каждой строке

В настоящее время у меня есть следующее.

  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», как у меня здесь

Спасибо

1 Ответ

0 голосов
/ 10 июня 2018

Вместо метода на основе имени FieldByName вы можете получить доступ к значениям кортежей с помощью свойства Fields , которое является индексированным свойством на основе 0.

FireDAC предлагает более эффективный способ доступа к данным.Получив все кортежи на клиенте, вы можете перебрать внутреннее хранилище данных следующим образом:

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;

Это ИМХО легче читать, а также экономит довольно много времени, поскольку не перемещаеткурсор набора данных.Недостатком может быть то, что вам нужно получать кортежи на стороне клиента.

...