Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Summe von DB erechnen lassen oder im Programm ? (https://www.delphipraxis.net/19754-summe-von-db-erechnen-lassen-oder-im-programm.html)

Hansa 8. Apr 2004 10:32


Summe von DB erechnen lassen oder im Programm ?
 
Hi,

die Frage bezieht sich zum Teil hier drauf :

http://www.delphipraxis.net/internal...=156047#156047

ich habe das nun so gemacht, wie Leuselator gesagt hat :
SQL-Code:
Wert1+Wert2 AS SUMME
Die SUMME zeige ich dann mit einem DBText an. So weit so gut. Allerdings stellen sich noch ein paar Fragen : soll ich das am besten überall so machen ? Dann werden die SQL-Statements viel größer. Andererseits verlagere ich die Arbeit auf die Datenbank. Wie siehts mit Rundungsfehlern aus ? Um es etwas deutlicher zu machen : Bei einer Rechnung habe ich zwei Nettobeträge (wegen 7 und 16% Mwst.). Die sind gespeichert. Für den Endbetrag müssen die jeweils um 7 bzw. 16% erhöht werden und dann wird addiert. Wo ist solch eine Rechenoperation am besten aufgehoben ? Und, wie gesagt, sind die Datentypen von Delphi und der Datenbank genau aufeinander abgestimmt ? Im Moment verwende ich auf DB Seite DECIMAL (15,2) und in Delphi real.

Hansa 8. Apr 2004 23:51

Re: Summe von DB erechnen lassen oder im Programm ?
 
push. Ausnahmsweise :mrgreen: Ich muß an der DB noch was umbauen. :lol:

Generalissimo 9. Apr 2004 00:28

Re: Summe von DB erechnen lassen oder im Programm ?
 
Grundsätzlich würde ich für Summen in einer SQL-Abfrage
SUM(x) nehmen wobei X für die Spalte steht. Sollte es sich um komplexere Berechnungen
handeln, würde ich diese in SP's auslagern.

Bezüglich der Datentypen:

Delphi-Quellcode:
Edit1.Text:=FloatToStr(Query.Fields[0].AsBCD)
AsBCD ist mit das genaueste.

Leuselator 9. Apr 2004 23:38

Re: Summe von DB erechnen lassen oder im Programm ?
 
für begrenzte Kommastellen verwende ich in Delphi "CURRENCY" und in MSSQL "MONEY" (jeweils 4 Nachkommastellen) und die sind dann auch kompatibel. Weis leider nicht, ob "MONEY" SQL-Standard ist, oder Mikisoft-Proprietär.

Rechnen in DB, wenn's geht, da einfacher wartbar und ev. schneller.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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