Also ich vermute, es gab hier im Thread einige Missverständnisse.
Wenn man Daten aus einer Tabelle oder
Query auslesen möchte und dies in einer eigenen Funktion tut, dann sollte man ganz klar die Klasse
TDataset verwenden.
Delphi-Quellcode:
procedure TForm1.DatenAnzeigen(ds:TDataset);
begin
MemoDaten.Clear;
MemoDaten.Lines.Add('Name='+ds.FieldByName('Bezeichnung').AsString);
MemoDaten.Lines.Add('Preis='+ds.FieldByName('Preis').AsString);
end;
procedure TForm1.Machwas;
begin
ADOQueryArtikel.Open;
if not ADOQueryArtikel.IsEmpty then
DatenAnzeigen(ADOQueryArtikel);
end;
Man sieht also, dass zwar eine AdoQuery verwendet wird aber zum Anzeigen nur die Basisklasse TDataset übergeben wird.
Dies hat zwei Vorteile:
1.) man kann problemlos von einer AdoQuery zum AdoDataset wechseln ohne dass die Anzeige-Prozedur geändert werden müsste
2.) man drückt klar seine Absicht aus, dass man nur mit einem Dataset arbeiten möchte.
Der Aufrufer muss also nicht damit rechnen, dass z.B. das Property
SQL verändert werden könnte