Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   TTable.RecNo > TTable.RecordCount? (https://www.delphipraxis.net/162205-ttable-recno-ttable-recordcount.html)

Angel4585 12. Aug 2011 12:32

Datenbank: Paradox • Version: 7? • Zugriff über: BDE

TTable.RecNo > TTable.RecordCount?
 
Hallo,

ich ermittle über diese Zeile ob ich auf dem letzten Datensatz stehe:
Delphi-Quellcode:
if MyTable.RecNoc = MyTable.RecordCount then
 ...
Bisher hat das funktioniert, dachte ich zumindest.
Da ich seit neustem ein Problem mit der Software habe bin ich an genau die stelle geraten und siehe da:
RecNo hat den Wert 15 und RecordCount den Wert 10.
Wie kann das sein? Ich dachte RecNo ist der Index eines Datensatzes innerhalb der aktuell angezeigten Datenmenge?

Ich würde gerne über MyTable.Eof gehen, aber da bekomm ich false wenn ich auf dem letzten Datensatz stehe. :(

Ich arbeite über eine gefilterte Datenmenge.
Die Gesamtanzahl aller Datensätze in der Tabelle ist aktuell 15 und die gefilterte Ansicht sind 10.

Liefert mir RecNo den Index der ungefilterten Tabelle obwohl diese gefiltert ist? :gruebel:
Wie stell ich dann fest ob ich auf dem letzten datensatz bin? Wie gesagt eof liefert auch false.

DeddyH 12. Aug 2011 12:34

AW: TTable.RecNo > TTable.RecordCount?
 
Ich meine mich erinnern zu können, dass man u.U. erst TTable.Last aufrufen muss, um den richtigen RecordCount zu erhalten.

Angel4585 12. Aug 2011 12:35

AW: TTable.RecNo > TTable.RecordCount?
 
RecordCount stimmt ja eigentlich, die Anzahl der gefilterten Ansicht ist ja 10.
Nur RecNo verwirrt mich. Die Anzahl der geilfterten ist wie gesagt 10, wie kann RecNo dann auf einen Index 15 zeigen?

sirius 12. Aug 2011 12:36

AW: TTable.RecNo > TTable.RecordCount?
 
RecordCount sollte nicht verwendet werden. Das funktioniert je nach DBMS mehr schlecht als recht.

DeddyH 12. Aug 2011 12:38

AW: TTable.RecNo > TTable.RecordCount?
 
Achso, sry, falsch herum verstanden. Bei Paradox und TTable kann ich leider nur sehr begrenzt weiterhelfen. Sag uns doch einfach, was Du mit dem Vergleich erreichen möchtest, evtl. geht es ja auch anders (TQuery z.B.).

Angel4585 12. Aug 2011 12:41

AW: TTable.RecNo > TTable.RecordCount?
 
steht doch da, ich möchte rausfinden ob ich auf dem letzten Datensatz der gefilterten Datenmenge stehe.
Normal würde ich das per MyTable.eof machen aber das ist seltsamerweise auch false.

Also ich hab ne TTable die mir eine gefilterte Menge in einem Grid anzeigt.
In der Tabelle gibt es eine SortId die festlegt in welcher Reihenfolge die Datensätze angezeigt werden.
Wenn ich auf dem letzten Datensatz stehe zähle ich einen fixen Wert zur SortId dazu und wenn ich irgendwo anders stehe nimm ich die Mitte als neue SortId.

DeddyH 12. Aug 2011 12:47

AW: TTable.RecNo > TTable.RecordCount?
 
EOF wäre ja auch erst nach einem TTable.Next true. Wie genau man mit TTable auf den letzten DS abfragen kann, entzieht sich momentan leider meiner Kenntnis.

Angel4585 12. Aug 2011 12:49

AW: TTable.RecNo > TTable.RecordCount?
 
Ahhhhhhh ja das klappt xD

Ich mach einfach ein Next und prüfe dann eof. Wenn das True ist arbeite ich damit. sosnt mach ich ein prior.

brechi 14. Aug 2011 22:10

AW: TTable.RecNo > TTable.RecordCount?
 
was spricht gegen:

Delphi-Quellcode:
while not table.eof do begin
  // bla blub
  table.next;
end;
// letzter auslesen eintrag
  x := table['bcd']
Edit:
ach nicht richtig gelesen -> dann halt Next+EOF wie schon von angel angemerkt

wenn next fehlschlägt sollte der Datensatz der gleiche sein oder nicht?

Angel4585 15. Aug 2011 07:26

AW: TTable.RecNo > TTable.RecordCount?
 
wenn eof = true ist der datensatz der gleiche wenn eof = false dann nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 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-2025 by Thomas Breitkreuz