Hallo,
ich schreibe an einem
NonVCL Programm und möchte eine TList mit meinen Accountdaten füllen.
Die Daten werden auch richtig in die Liste eingetragen, aber sobald ich die Daten aus der Liste auslesen möchte zeigt der mir von den zwei Accounts zweimal den zweiten an.
Hier mal der Code:
Delphi-Quellcode:
type
TAccounts =
class(TObject)
ID : Integer;
Name :
String;
Passwort :
String;
ban : integer;
end;
...
q:='
select * from user;';
FResult := FMysql.query(q, true, ex);
if ex
then
begin
ListAccounts:= TList.Create;
Account:= TAccounts.Create;
FResult.First;
for I := 0
to FResult.RowsCount - 1
do
begin
Account.ID := strtoint(Fresult.FieldValuebyname('
id'));
Account.
Name := Fresult.FieldValuebyname('
username');
Account.Passwort := Fresult.FieldValuebyname('
password');
Account.ban := strtoint(Fresult.FieldValuebyname('
ban'));
ListAccounts.Add(Account);
FResult.Next;
end;
...
for E := 0
to SQL.ListAccounts.Count -1
do
begin
Account :=
SQL.ListAccounts.Items[E];
WriteLN('
Name: '+Account.
Name+'
| '+'
ID: '+inttostr(Account.ID));
end;
Das Ergebnis in der Konsole ist:
Name: test | ID: 2
Name: test | ID: 2
Eigentlich müsste es aber so aussehen:
Name: XXcD | ID: 1
Name: test | ID: 2
Wo könnte da der Fehler liegen?