Ja, aber bei TQuery verlasse ich mich nicht auf RecordCount, weil es eben nicht bei allen Datenbanken sofort auf dem tatsächlichen Wert der zu verarbeitenden Datensätze steht.
Bei DBase wurde beim Lesen von RecordCount das Lesen der gesamten Datenmenge veranlasst. Aber dies erfolgte nicht grundsätzlich für alle beliebigen Datenbanken, sondern nur bei DBase reproduzierbar.
Und im aktuellen Fall scheint es ja nicht so zu sein, sonst müsste die For-Schleife ja korrekt funktionieren, weil ja spätestens bei
for x := 1 to qry.RecordCount
das holen aller Datensätze engestoßen werden müsste und damit hier ReordCount nicht mehr 1 sein dürfte.
Interessant wäre zu erfahren, ob ein derartiges Konstrukt zu einem geänderten Verhalten führt:
Delphi-Quellcode:
AlleSaetze := qry.RecordCount;
for x := 1 to AlleSaetze do begin
...
end;
Enthält hier dann AlleSaetze die tatsächliche Anzahl an Datensätzen oder auch nur 1?