Entwickler-Ecke

Datenbanken - Datensatzzähler stimmt nicht??


D. Annies - Do 03.01.08 13:49
Titel: Datensatzzähler stimmt nicht??
Hi, Delpher,

mit dem folgenden Code lade ich eine Tabelle:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure Tform1.lade_buecher(sender:tobject);
begin
  TbBuecher.Active := false;
    TbBuecher.TableName := concat(label30.caption, 'buecher.dbf');
  TbBuecher.active := true;
  progressbar2.max := TbBuecher.RecordCount; //showmessage(inttostr(TbBuecher.RecordCount));
  qBuecherSort(self);
  //TbBuecher.CachedUpdates := false; QBuecher.CachedUpdates := false;  // *** !!! ???
end;


Der Recordcount zeigt 11831 Datensätze an. In der BDE finde ich aber die Zahl 11849. Die BDE-Zahl ist richtig.

Was bedeutet das/ diese Abweichung?

Danke für Hilfe,
Detlef A.


zuma - Do 03.01.08 15:07

hab ein ähnliches problem mit ner anderen DB gehabt ...
Versuche mal, nach dem öffnen der Datenmenge ein
Datenmenge.Last;
Datenmenge.First;
und dann den Recordcount ...
könnte sein, das nicht alle Datensätze der DB abgerufen werden, solange sie nicht angesprochen/visualisiert wurden ?


D. Annies - Do 03.01.08 15:53

Hi, zuma,

danke für deine Idee, aber daran liegt es nicht.

Gruß, Detlef
P.S. Es ist eine DBase-Tabelle


jasocul - Do 03.01.08 16:05
Titel: Re: Datensatzzähler stimmt nicht??
user profile iconD. Annies hat folgendes geschrieben:
Der Recordcount zeigt 11831 Datensätze an. In der BDE finde ich aber die Zahl 11849. Die BDE-Zahl ist richtig.
Hast du nachgezählt? :lol:

Habe lange nicht mehr mit dBase gearbeitet. Es könnte evtl sein, dass in der Tabelle gelöschte Datensätze existieren. dBase-Tabellen haben dafür nur ein Löschkennzeichen. Da du vermutlich mit dem DB-Explorer nachgesehen hast, könnte es sein, dass dir dort alle Datensätze angezeigt werden. Auch die Gelöschten. Diese allerdings mit dem Lösch-Kennzeichen. Wenn man direkt mit der dBase-Oberfläche arbeitet, kann man sich das auch anzeigen lassen.

Somit wäre der Wert in deinem Programm korrekt und nicht der andere.


D. Annies - Do 03.01.08 16:58

Hi, Peter,

ja, du hsat recht. Nach dem Packen der Tabelle waren dort auch nur noch 11831 DS.
So, mal sehen,was als nächstes (für ein Fehler) kommt. :P

Danke, Detlef