如何从字段中获取值并分配给 TStringList?

How to get values from a field and assign to a TStringList?

如何从下图中获取所有用户名值并将它们转换为 TStringList、字符串或 TMemo

我尝试了以下代码,但它没有用。

with q3 do
  var txResul:stringlist
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT*FROM user');
    Open;
    Next;
  end;
  txtResult.Add(q1.FieldByName('username').AsString);

假设您的屏幕截图是您调用的数据集,请执行如下操作:

procedure GetUserNames(DataSet : TDataSet; StringList : TStringList);
var
  Field : TField;
begin
  Field := DataSet.FieldByName('username');
  StringList.BeginUpdate;      
  try
    DataSet.DisableControls;
    try
      DataSet.First;
      while not DataSet.Eof do begin
        StringList.Add(Field.AsString);
        DataSet.Next;
      end;
    finally
      DataSet.EnableControls;
    end; 
  finally
    StringList.EndUpdate;
  end;
end;

你可能会这样使用它

procedure TForm1.GetUsers;
var
  TL : StringList;
begin
  TL := StringList.Create;
  try
    GetUserNames(MyTable, TL);
    Memo1.Lines.Text := TL.Text;
  finally
    TL.Free;
  end;
end;

顺便说一句,如果您将 GetUserNames 的第二个参数更改为 TStrings,如 GetUserNames(DataSet : TDataSet; Strings : TStrings) 中那样,您可以直接将 Memo1.Lines 传递给它。