Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Integer Overflow bei Multiplikation im SELECT (Interbase) (https://www.delphipraxis.net/20662-integer-overflow-bei-multiplikation-im-select-interbase.html)

Jens Schumann 21. Apr 2004 08:13


Integer Overflow bei Multiplikation im SELECT (Interbase)
 
Hallo,
ich stehe vor einem noch nie dagewesenem Problem.
Wenn ich folgendes SQL auf die Datenbank loslasse funktioniert alles einwandfrei:
Code:
SELECT Sum(tabelle.wert*0.0833) AS JAN FROM tabelle
Wenn ich hingegen folgendes SQL auf die Datenbank loslasse kommt es zum Fehler:
Code:
SELECT Sum(tabelle.wert*0.08333) AS JAN FROM tabelle
Der Unterschied zum obigen SQL ist die Anzahl der Kommastellen.

Code:
Integer overflow The result of an integer operation caused the most significant bit of the result to carry on line 1 : SELECT Sum(tabelle.wert*0.08333) AS JAN FROM tabelle
Wert ist vom Type DECIMAL(18,8 )

Jetzt könnte man auf die Idee kommen: Nimm doch vier Kommastellen.
Leider geht das nicht, da die Multiplikatoren normalerweise aus einer anderen Tabelle kommen.
Auf diese Tabelle habe ich keinen Einfluß.

Weiss jemand hier Rat?

Jens Schumann 21. Apr 2004 08:39

Re: Integer Overflow bei Multiplikation im SELECT (Interbase
 
Wenn ich den wert caste funktioniert es.
Code:
SELECT Sum(CAST(tabelle.wert AS DECIMAL(18,0)*0.08333333) AS JAN FROM tabelle
funktioniert.
:gruebel: :gruebel: :gruebel:

shmia 21. Apr 2004 08:48

Re: Integer Overflow bei Multiplikation im SELECT (Interbase
 
Es stellt sich die Frage, wie Interbase auf die dumme Idee kommt, hier
eine Integer-Operation zu verwenden.
Versuch mal beide Faktoren explizit in den Datentyp Double zu casten.
SQL-Code:
SELECT Sum(Cast(tabelle.wert AS Double)*Cast(0.08333 AS Double)) AS JAN FROM tabelle
Möglicherweise muss nur der linke Faktor gecastet werden.
Viel Glück :thuimb:


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