Zitat von
DeddyH:
Funktioniert es denn so?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Query.Close;
Query.SQL.Text := '
SELECT * ' +
'
FROM test;';
Query.Open;
i := 0;
SetLength(FTerminartIds,0);
while not Query.EOF
do
begin
inc(i);
SetLength(FTerminartIds,i);
FTerminartIds[High(FTerminartIds)] :=
Query.DbcResultSet.GetIntByName('
test_id');
// Access Violation
Query.Next;
end;
end;
Ich weiß, dass das nicht performant ist, aber das kann man ja noch optimieren, wenn es funktionieren sollte.
Da soll mich doch gleich dieser und jener... SO GEHTS! Klär mich auf, was machst du anders und ich falsch??? Muss etwas mit meinem dynamischen Array zu tun haben, aber was?
EDIT: Du setzt mit SetLength(FTerminartIds,i) die Länge bei jedem Schleifendurchgang aufs Neue. Warum das? Warum nicht so wie ich, einmal am Anfang? Müsste doch auch klappen?!?