Announcement

Collapse
No announcement yet.

Firts und Next unzuverlässig?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Firts und Next unzuverlässig?

    Hallo zusammen,

    ich habe folgendes Problem:
    In meinem Programm führe ich zunächst eine einfache Select-Query aus. Danach nehme ich mir mir mit First den ersten Eintrag und iteriere per Whileschleife (Next) über die Datensätze, die dann ggf. mit einer zweiten Query geupdatet werden.
    Wenn ich mir nun aber die Anzahl der Records in der Query ausgeben lasse und in der Schleife mitzähle wieviele Datensätze denn nun bis zum EoF durchgesehen wurden, stimmen diese nicht überein. Es ist immerhin ein Unterschied von ca. 800 Records.
    Nun die Frage wie dieser Unterschied entsteht. Verstehe ich die Vorgehensweise von First zusammen mit Next nicht, oder kommen die Datensätze durch die zweite (unabhängige) Query durcheinander?

    Danke im Vorraus

  • #2
    Moin,

    "First" (ist nach Öffnen des Querys nicht erforderlich) und "Next" sind eigentlich schon "zuverlässig", die Ausgabe "RecordCount" aber abhängig von verwendeten RDBMS nicht unbedingt. Bei einigen Systemen stimmt soweit ich weiß die Anzahl erst nach Verwendung von "Last".

    Gruß,

    Geert

    Comment


    • #3
      Beim öffnen einer Datenmenge unter Delphi steht der Curser (im Gegensatz zu Java) auf den ersten Datensatz.
      Und die Anzahl der Datensätze kann nicht garantiert werden da hier z.B. die curserlocation eine Rolle spielt. Bei einem serverseitigen Curser kannst du schon durch die ersten Datensetze mit Next durchlaufen auch wenn der Server noch nicht alle Datensätze bestimmt hat (also selbst der server die Anzahl noch nicht kennt)

      Comment


      • #4
        Also kann ich mich getrost auf "Next" verlassen und die RecordCount Angabe eher Stiefmütterlich betrachten? Denn wenn ich im ControlCenter die SelectQuery einfach nur mit einem Count(*) ausführe kommt das selbe Ergebnis wie bei RecordCount heraus. Falls ich es noch nicht erwähnt habe, der RecordCount ist grösser als die Anzahl der Schleifendurchläufe.
        Dann sag ich mal Danke.

        Edit: Es ist leider nachweisbar, dass nicht alle Datensätze berührt werden.
        Edit2: Hallo zusammen, hab den Fehler gefunden, für den ich mich echt schäme... Hab im Code nach ein altes "Next" übersehen, kein Wunder.... Vielen Dank für eure Hilfe, es war mir mal wieder eine Lehre.
        Zuletzt editiert von Archeotecher; 19.09.2008, 10:24.

        Comment

        Working...
        X