2016-12-25 5 views
-2

Wie bekomme ich alle Benutzernamen Werte aus dem Bild unten und kann sie in TStringList, Strings oder TMemo konvertieren?Wie Werte aus einem Feld abgerufen und einer TStringList zugewiesen werden?

enter image description here

Ich habe versucht, den folgenden Code, aber es hat nicht funktioniert.

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

Ich versuche dies, aber Fehler ... mit Q3 tun var txResul: Zeichenkette beginnen Schließen; SQL.Clear; SQL.Add ('SELECT * FROM Benutzer'); Öffnen; Nächste; Ende; txtResult.Add (q1.FieldByName ('Benutzername'). AsString); –

+3

Verwenden Sie nicht "mit"! Es spart minimale Zeit und führt leicht zu Fehlern. Übrigens, meinst du q3 oder q1? – MartynA

+1

Anton, verwende keine Kommentare, um Informationen zu deiner Frage hinzuzufügen. Korrigieren Sie Ihre Frage, indem Sie den [Link bearbeiten] (http://stackoverflow.com/posts/41321306/edit) verwenden, um diese Informationen zur eigentlichen Frage hinzuzufügen. –

Antwort

6

Ihr Screenshot Unter der Annahme ist ein Datensatz, den Sie so etwas tun nennen:

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; 

Man könnte es wie dieses Btw

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

verwenden, wenn Sie den zweiten Parameter von getUserNames geändert zu einem TStrings, wie in GetUserNames(DataSet : TDataSet; Strings : TStrings) können Sie Memo1.Lines direkt daran übergeben.

+0

kann ich es Memo bro hinzufügen? –

+0

ok ... seine Arbeit. thanks mastah @MartynA –

+2

Eine zusätzliche nützliche Sache ist es, die Anfangsposition im Dataset als Lesezeichen zu speichern und zu dieser Position zurückzukehren, bevor die Steuerelemente aktiviert werden. Andernfalls wird jedes Mal, wenn GetUserNames aufgerufen wird, das Raster in die letzte Zeile verschoben. –

Verwandte Themen