Einzelnen Beitrag anzeigen

zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#8

AW: Anzahl gefundener Datensätze

  Alt 28. Jul 2020, 10:47
Das ist schon klar, beantwortet aber nicht die Frage, von welchem Typ sie ist und ob sie unter Umständen Dubletten ignorieren könnte und damit ein falsches Zählergebnis zustande kommt.
KAList ist eine StringList. Mit Dubletten sollte es keine Probleme geben, da bei Insert geprüft wird, ob es diesen Wert schon gibt.

Last muss gesetzt werden, damit die Datenbank zum letzten Datensatz geht. Vorher ist RecordCount (je nach Datenbank) die Zahl des letzten, bisher gelesenen, Datensatzes. Und bei einigen Datenbanken bzw. Datenbankkomponenten wird nicht sofort alles gelesen, sondern nur die Sätze, deren Lesen beim ersten Fetch erfolgt. Wenn Du also z. B. 1000000 Sätze in der Tabelle hast, aber beim Fetchen nur 2 Datensätze gelesen werden sollen, so hat RecordCount dann auch nur den Wert 2, derweil: Der Datenbank und der Datenbankkomponenten sind zu diesem Zeitpunkt noch nicht bekannt, dass es 1000000 Sätze gibt. Bisher haben sie halt nur 2 gefunden, beim nächsten Next wissen sie dann, dass es bis dahin nun 3 Sätze sind. Das wird wiederholt, bis EoF erreicht ist. Last ist halt der kürzeste Weg zum letzten Datensatz in der Datenmenge. Und erst wenn das Ende der Datenmenge erreicht ist, ist auch definitiv bekannt, wieviele Datensätze die Datenmenge enthält.
Die Erklärung hilft mit sehr weiter.
In der Query habe ich nun gesehen, dass es einen Wert "RowsetSize" gibt, der auf 50 steht. Dies erklärt dann auch das Verhalten, was ich beobachtet habe.


Vielen Dank euch nochmals für die Erklärungen. Damit ist mein Problem gelöst.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat