Die Frage ist mir schon peinlich, aber hoffe das mir trotzdem jemand helfen kann.
Wie kann ich die echte Anzahl (ohne die als gelöscht markierten) feststellen ?
Lastrec() oder Reccount() geben ja nur die Anzahl inklusive den gelöschten Sätzen zurück.
Anzahl Sätze in einer Datenbank
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Klaus,
ich meine das Thema hatten wir von ein paar Wochen schon mal.
Es gibt keinen einfachen Befehl wie Lastrec() und es kann diesen auch nicht geben. Wenn die Geschwindigkeit nicht allzu wichtig ist hilft dies:
wenn das zu langsam ist, könnte man einen eigenen Index pflegen:
in diesem Beispiel habe ich extra auf deleted() gesetzt und diese gezählt, da das meist weniger sind.
Oder man macht eine eigene Funktion für delete und recall, in der man die Anzahl der gelöschten Datensätze mitzählt. Dann müsste man nur einmal beim Öffnen den Ursprungswert ermitteln. Das könnte aber fehlerträchtig sein
ich meine das Thema hatten wir von ein paar Wochen schon mal.
Es gibt keinen einfachen Befehl wie Lastrec() und es kann diesen auch nicht geben. Wenn die Geschwindigkeit nicht allzu wichtig ist hilft dies:
Code: Alles auswählen
nAnzahl := 0
xyz->(dbeval({|| nAnzahl++}, {|| ! deleted() }))
Code: Alles auswählen
index on SortFeld for deleted()
...
count all to nAnzahlDeleted
nAnzahlRecords := lastrec() - nAnzahlDeleted
Oder man macht eine eigene Funktion für delete und recall, in der man die Anzahl der gelöschten Datensätze mitzählt. Dann müsste man nur einmal beim Öffnen den Ursprungswert ermitteln. Das könnte aber fehlerträchtig sein
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hallo Klaus,
nur weil ich eine sehr ähnliche Frage neulichst auch gestellt habe: Schau doch mal da nach: http://www.xbaseforum.de/viewtopic.php?t=1685
Jan
nur weil ich eine sehr ähnliche Frage neulichst auch gestellt habe: Schau doch mal da nach: http://www.xbaseforum.de/viewtopic.php?t=1685
Jan