Thema: Delphi Aggreagt Funktion

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Aggreagt Funktion

  Alt 23. Mär 2009, 16:51
Du kannst in einem berechneten Feld keine Gesamtsumme über alle Datensätze bilden!!!
Grund: du kannst nicht kontrollieren wie oft OnCalcRecord aufgerufen wird.
Das Event kann für einen Datensatz durchaus mehrfach abgefeuert werden. (Sobald ein DBGrid angeschlossen ist)

Mit berechneten Felder kann man sich nur innerhalb eines Datensatzes austoben.
Jegliche Berechnungen, die über einen Datensatz hinausgehen, können prinzipiell nicht funktionieren.
Du kannst natürlich über alle Datensätze gehen und aufaddieren:
Delphi-Quellcode:
gespreis := 0.0;
query1.first;
while not query1.eof do
begin
  gespreis := gespreis + Query1.FieldByName('gespreis').AsFloat;
  query1.Next;
end;
Mit SQL geht's aber schneller.
Andreas
  Mit Zitat antworten Zitat