Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Datensätze zählen (https://www.delphipraxis.net/146298-dbgrid-datensaetze-zaehlen.html)

fl63 17. Jan 2010 14:47

Datenbank: BDE,Paradox • Zugriff über: BDE, SQL

DBGrid Datensätze zählen
 
Hallo!

Eine neue Frage an die Datenbankspezialisten unter Euch.

Wie kann ich in einem DBGrid die Zahl der Datensätze ermitteln? Ich stelle mir das so vor wie bei einem Stringgrid also RowCount. RowCount gibt es aber bei DBGrid nicht. Wie kann ich da vorgehen?

toms 17. Jan 2010 15:01

Re: DBGrid Datensätze zählen
 
Über diesen Umweg:

Delphi-Quellcode:
type
  TGridCracker = class(TDBGrid);
 
  AnzahlZeilen := TGridCracker(DBGrid1).RowCount;
(ohne Header -1)

haentschman 17. Jan 2010 17:36

Re: DBGrid Datensätze zählen
 
Oder über die Anzahl der Datensätze des verbundenen Datasets (Table,Query)

Dataset.RecordCount

:hi:

TBx 17. Jan 2010 17:48

Re: DBGrid Datensätze zählen
 
Solange Du mit der BDE arbeitest (schauder) einfach die RowCount-Eigenschaft der Dataset-Komponente auswerten. Das funktioniert, weil die BDE sich immer alle Daten eines DataSets reinnuckelt.
Sauber ist es, direkt per SQL die Datensatzanzahl zu ermitteln:
SQL-Code:
select count (*) from <tablename>
Das funktioniert dann auch, wenn die Datenmenge nur zum Teil eingelesen wird (caching).

mkinzler 18. Jan 2010 06:55

Re: DBGrid Datensätze zählen
 
Und wenn die Tabelle einen Primärschlüssel hat noch besser
SQL-Code:
select count (<PK>) from <tablename>;

fl63 18. Jan 2010 18:22

Re: DBGrid Datensätze zählen
 
Hallo

Ich ab die Lösung über

Zitat:

Zitat von haentschman
Oder über die Anzahl der Datensätze des verbundenen Datasets (Table,Query)

Dataset.RecordCount

:hi:

diesen Weg gewählt, und werde auch noch die anderen Wege ausprobieren.

Ich verstehe einfach nicht was alle Leute gegen BDE haben. Die BDE liefert doch alle notwendigen Komponenten mit. Sie ist nicht besonders schnell, aber wenn dies das einzigste Kriterium ist...

Anbei meine Lösung:

Delphi-Quellcode:
begin
  StatusBar1.Panels[1].Text
    := IntToStr(Query1.RecNo) + ' / '
      + IntToStr(Query1.RecordCount) + ' ';
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz