Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Welche Feldtypen für Numeric in Firebird50 (https://www.delphipraxis.net/214740-welche-feldtypen-fuer-numeric-firebird50.html)

NoName1 1. Mär 2024 15:21

Datenbank: FireBird • Version: 5 • Zugriff über: egal

Welche Feldtypen für Numeric in Firebird50
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag Entwickler,
Nachdem ich mit der Datenbank von FireBird 2.5 auf FireBird 5.0 umgestiegen bin, gibt es einige Schwierigkeiten beim Ausführen des Programms.

Delphi-Quellcode:
  sqlbuch.Close;
  sqlbuch.SQL.Clear;
  sqlbuch.SQL.Add('select sum(SOLLBETRAG) as tempsumme from BUCHUNGENTEMP '); // hier wird abgebrochen
  sqlbuch.ExecQuery;
  Result := sqlbuch.FieldByName('tempsumme').AsCurrency;
  sqlbuch.Close;
In der Meldung, siehe auch den Anhang, wird "Unbekannter DatenTyp" ausgegeben. In der Tabelle ist die Spalte "Sollbetrag" als Typ Numeric (10,2) angelegt. Als welchen Typ soll den nun ein Numerisches Feld angelegt werden?

Vielen Dank für Eure Hilfestellungen.

Frickler 1. Mär 2024 15:36

AW: Welche Feldtypen für Numeric in Firebird50
 
Bei Firebird ab Version 4 haben Aggregate auf DECIMAL bzw NUMERIC Datentypen den Datentyp DECFLOAT. Damit kann Deine Zugriffskomponente nichts anfangen.
Vielleicht das Ergebnis casten, etwa auf DOUBLE PRECISION.
Code:
SELECT CAST(sum(SOLLBETRAG) AS DOUBLE PRECISION) ...
oder
Code:
SELECT CAST(sum(SOLLBETRAG) AS NUMERIC(10,2)) ...
wenn das denn geht.

NoName1 2. Mär 2024 09:13

AW: Welche Feldtypen für Numeric in Firebird50
 
Vielen Dank für die Antwort. War genau das Richtige.

himitsu 2. Mär 2024 10:36

AW: Welche Feldtypen für Numeric in Firebird50
 
Was hat SOLLBETRAG denn für einen Typ?
SUM müsste doch denselben Typ rausgeben. :gruebel:
OK, scheinbar nicht. :shock:
Zitat:

SUM(DECIMAL(18,2)) has type DECIMAL(34,2) which is internally INT128.
https://groups.google.com/g/firebird.../c/Mj_g3c3GLfA

Und dann wird da auch noch über was vonwegen
Delphi-Quellcode:
DataTypeCompatibility = 3.0
geredet.
https://github.com/mariuz/flamerobin/issues/205


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