Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TQuery -> Anzahl Datensätze (https://www.delphipraxis.net/96426-tquery-anzahl-datensaetze.html)

HolgerCW 24. Jul 2007 10:54

Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE

TQuery -> Anzahl Datensätze
 
Hallo zusammen,

kann man einer TQuery die Anzahl der Datensätze entnehmen, ohne mit Count in SQL zu arbeiten. Habe die TQuery mit einer DataSource an ein DBGrid gekoppelt und würde jetzt gerne wissen, wieviele Datensätze in der DBGrid sind

Gruss

Holger

Bernhard Geyer 24. Jul 2007 10:59

Re: TQuery -> Anzahl Datensätze
 
Einfach zum Ende der Query scrollen.
Oracle weis ja selbst nicht wenn die ersten Datensätze zum Client geliefert werden wieviel Datensätze enthalten sind da ja im Hintergrund u.U. noch die "restlichen" Ergebnissätze bestimmt werden.

HolgerCW 24. Jul 2007 11:07

Re: TQuery -> Anzahl Datensätze
 
Alles klar,

das klappt schon mal, und wie könnte ich jetzt noch die Summe der in Spalte XYZ enthaltenen Werte ermitteln ? (Ohne SQL)

Gruss

Holger

mkinzler 24. Jul 2007 11:24

Re: TQuery -> Anzahl Datensätze
 
Weicht diese Anzahl von der Anzahl der Datensätze ab?

HolgerCW 24. Jul 2007 12:06

Re: TQuery -> Anzahl Datensätze
 
Ja,

es ist ein berechnetes Feld.

Es kann in jedem Datensatz, die Zahl 0 - 10 annehmen.

Gruss

Holger

mkinzler 24. Jul 2007 12:08

Re: TQuery -> Anzahl Datensätze
 
Dann wirst du nicht ohen weitere Abfage auskommen.

HolgerCW 24. Jul 2007 12:41

Re: TQuery -> Anzahl Datensätze
 
Danke für die Hilfe,

dann weiss ich jetzt bescheid und werde weiter TQuerys basteln.

Gruss

Holger

mkinzler 24. Jul 2007 13:01

Re: TQuery -> Anzahl Datensätze
 
Du könntest auch versuchen die benötigten infos dazuzujoinen.

SQL-Code:
select <feldlist>,(select count(<id>) from <tabelle>) as anzahl from <tabelle> ...

Thomas Horstmann 24. Jul 2007 13:15

Re: TQuery -> Anzahl Datensätze
 
Hallo,
recht einfach geht es mit "FetchAll" und "RecordCount":

Delphi-Quellcode:
MyQuery.FetchAll ;
ShowMessage('Anzahl: ' + IntToStr(MyQuery.RecordCount)) ;
Für die Summe am besten SQL oder Schleife (aber recht langsam):

Delphi-Quellcode:
var
iSum : Currrency ;
..
with MyQuery do
  begin
  { Ausgaben deaktivieren, sonst werden die Grids mit "gescrollt" }
  DisableControls ;
  { Zurücksetzen }
  iSum := 0 ;
  { Zum Anfang }
  First ;

  { Schleife, über alle Datensätze }
  while EOF = FALSE do
    begin
    { Addieren }
    iSum := iSum + FieldByName('FieldXYZ').AsCurrency ;
    { Nächster Datensatz }
    Next ;
    end ; // while EOF

  { Ausgaben aktivieren }
  EnableControls ;
  end ; // with MyQuery
Hoffe es hilft.

Viele Grüsse
Thomas

HolgerCW 25. Jul 2007 13:32

Re: TQuery -> Anzahl Datensätze
 
Hi,

danke für die Hilfen.

Die Schleife ist echt zu langsam, da 13.000 Datensätze.

Zitat:

select <feldlist>,(select count(<id>) from <tabelle>) as anzahl from <tabelle> ...
Welche Tabelle würde ich denn für ID angeben, wenn ID ein berechnetes Feld ist ?

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr.
Seite 1 von 3  1 23      

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