Wie kann ich danach auf den zweiten Fund springen, bzw. mir anzeigen lassen?
In den meisten Queries/Datasets gibt es die Methode LocateNext, bzw. in IbDac LocateEx mit der TLocateExOption lxNext oder auch lxNearest und lxUp (rückwärts).
Wie jedoch
Union oben bereits anmerkte, ist Locate für das Iterieren durch eine ausgewählte Datenmenge weniger gut geeignet, weil Locate erstens mit der Suche nicht am Anfang der Tabelle beginnt und zeitens weniger flexibel ist, was die Selektionsmöglichkkeiten betrifft. Besser wäre hier, die gewünschte Datenmenge via
SQL zu selectieren und dann vom ersten bis zum letzten Datensatz mit Next zu durchzublättern (iterieren):
Delphi-Quellcode:
MyQuery.Active := False;
MyQuery.SQL.Clear;
MyQuery.SQL.Append('select * from MyTable');
MyQuery.SQL.Append('where Strasse = ' + QuotedStr('Hauptstraße'));
MyQuery.SQL.Append('order by Strasse');
MyQuery.Open;
IF MyQuery.RecordCount > 0 THEN
While not MyQuery.Eof DO
Begin
DoSomething(MyQuery);
MyQuery.Next;
End;