![]() |
Summe von DB erechnen lassen oder im Programm ?
Hi,
die Frage bezieht sich zum Teil hier drauf : ![]() ich habe das nun so gemacht, wie Leuselator gesagt hat :
SQL-Code:
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.
Wert1+Wert2 AS SUMME
|
Re: Summe von DB erechnen lassen oder im Programm ?
push. Ausnahmsweise :mrgreen: Ich muß an der DB noch was umbauen. :lol:
|
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:
AsBCD ist mit das genaueste.
Edit1.Text:=FloatToStr(Query.Fields[0].AsBCD)
|
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