Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BOF und EOF gleichzeitig true (https://www.delphipraxis.net/124918-bof-und-eof-gleichzeitig-true.html)

Rainer Wolff 27. Nov 2008 10:21

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

nahpets 27. Nov 2008 10:33

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.

Rainer Wolff 27. Nov 2008 11:47

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

nahpets 27. Nov 2008 13:02

Re: BOF und EOF gleichzeitig true
 
Hallo,

habe gerade bei der Suche nach was Anderem in den Delphisourcen folgendes gefunden:

Delphi-Quellcode:
if Recordset.EOF and Recordset.BOF and (Recordset.RecordCount > 0) and EOF then
   Recordset.MoveLast;
Wie können EoF und BoF Wahr sein, wenn RecordCount > 0 und wohin komme ich, wenn ich dann noch zum letzten Datensatz gehe? :gruebel:


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