![]() |
Datenbank: firebird • Version: 2.0 • Zugriff über: ibx + Clientdataset
BOF und EOF gleichzeitig true
Hallo,
in was für Fällen kann BOF und EOF gleichzeitig true sein? Bei leerer Datenmenge klar, aber gibt es sonst noch Situationen? Ich habe nämlich ein sehr merkwürdiges Verhalten in meinem Programm: Ein Masterdataset, zwei Childs, von den Childs noch 2 Clones mit CloneCursor erzeugt, alles Clientdatasets. Beim Refresh Master bekomme ich von den Childs OnDataChange Events, dabei hat ein Child zwischendurch EOF und BOF gleichzeitig true, der Recordcount ist aber größer Null. Der Clon zeigt im selben Event aber nicht das selbe Verhalten, er hat am Anfang zwar (korrekterweise) BOF=true, aber (auch korrekt) EOF=false. Der zweite Childset ist identisch zum ersten aufgebaut und aufgerufen und zeigt dieses Verhalten nicht. Da der ChangeEvent anschliessend nochmal ausgelöst wird (dann mit korrekten Flags), werde ich wohl einfach eine Abfrage einbauen und den Sonderfall ignorieren, aber es würde mich eigentlich schon interessieren, warum dieses Verhalten auftaucht. Gruß Rainer |
Re: BOF und EOF gleichzeitig true
Hallo,
keine Lösung, aber "Erfahrungswerte?" Mir ist im Laufe der Jahre immer mal wieder aufgefallen, dass ich mich auf Bof, EoF, RecNo und RecordCount nicht immer verlassen kann, es scheint da datenbankabhängige "Unstimmigkeiten" zugeben. Woher sie resultieren? Keine Ahnung, dass habe ich bisher nie verifizieren können. |
Re: BOF und EOF gleichzeitig true
Dass Recordcount nicht unbedingt passt, hab ich auch schon gehört/erlebt.
Die Kontrolle mit BOF/EOF hab ich eigentlich auch erst gemacht, als ich gemerkt hab, dass keine Daten im Datensatz vorhanden sind (und mein Programm dabei eine Endlos-Exception gestartet hat). Die Daten sind aber eigentlich sehr wohl da, an der selben Stelle wird der DatasetClone mit allen Datensätzen durchlaufen, und ein, zwei ChangeEvents später ist alles wieder in Ordnung. Man muß aber auch nicht alles verstehen Rainer |
Re: BOF und EOF gleichzeitig true
Hallo,
habe gerade bei der Suche nach was Anderem in den Delphisourcen folgendes gefunden:
Delphi-Quellcode:
Wie können EoF und BoF Wahr sein, wenn RecordCount > 0 und wohin komme ich, wenn ich dann noch zum letzten Datensatz gehe? :gruebel:
if Recordset.EOF and Recordset.BOF and (Recordset.RecordCount > 0) and EOF then
Recordset.MoveLast; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz