Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#10

AW: Delphi 7 MySQL TEXT fields

  Alt 16. Dez 2024, 13:16
RecordCount wird clientseitig ausgewertet, indem tatsächlich alle Datensätze abgerufen und gezählt werden.
Das stimmt leider nicht immer. Wenn ich in Delphi 7 mit den Zeoskomponenten und 'ner FireBird-Datenbank arbeite und dabei Fetch 100 gesetzt habe, so kann ich sehen, dass sich im Laufe der Verarbeitung RecordCount ändert. Bei der Nutzung der ADO-Komponenten scheint aber RecordCount sofort auf der tatsächlichen Anzahl von Datensätzen zu stehen.

Früher, mit BDE und DBase, sorgte ein x := qry.RecordCount dafür, dass alle Datensätze gelesen wurden und damit dann die Anzahl der Datensätze bekannt wurde. Aber die Daten wurden erst beim Lesen von RecordCount "geholt", was an der entstehenden Laufzeit bei der Zuweisung von RecordCount auf x zu bemerken war. Diese Laufzeit trat jedoch nicht "so geballt" auf, wenn man per While not EoF die Daten in 'ner Schleife verarbeitete. Aber man wusste dann erst beim Erreichen von EoF wieviele Datensätze verarbeitet wurden.

Und da hier ja Delphi 7 und TQuery (= BDE) genutzt werden, könnte dieser Effekt (und ähnliche (mySQL-bedingete?) Absonderlichkeiten) noch zum Tragen kommen.
  Mit Zitat antworten Zitat