shmia hat es bereits im Posting #2 gesagt: der gezeigte Weg ist nicht elegant: Warum erst die gesammte Tabelle laden und dann satzweise durchhangeln, um einen bestimmten Datensatz zu finden?
Sowas lässt sich mit einem
SQL-Statement anders=besser lösen:
Delphi-Quellcode:
procedure TFormMain.Open;
begin
if not ADOQuery1.Prepared
then
begin
ADOQuery1.Close;
// sicherheitshalber!
ADOQuery1.SQL.Text := '
SELECT * FROM TAC8 WHERE feld1=:WERT ';
//--für weitere Abfragen mit unterschiedlichem Parameter vorbereiten
ADOQuery1.Prepared := True;
end;
//--Parameter setzen, vorher Query schliessen
ADOQuery.Close;
ADOQuery1.Params[0].Value := StrToInt(Edit1.Text);
ADOQuery1.Open;
//--hat Abfrage einen Datensatz zürückgeliefert?
if not ADOQuery1.IsEmpty
then
begin
hst:= ADOQuery1.FieldValues['
Feld2'];
modell:=ADOQuery1.FieldValues['
Feld3'];
zula:=ADOQuery1.FieldValues['
Feld4'];
land:=ADOQuery1.FieldValues['
Feld5'];
memo1.Lines.add('
Manufacturer :'+hst);
memo1.Lines.add('
Model :'+modell);
memo1.Lines.add('
Reg. :'+zula);
memo1.Lines.add('
Country :'+land);
memo1.Lines.add('
==============');
end
else
Memo1.Lines.Add('
kein Datensatz für ' + Edit1.Text + '
vorhanden');
end;