PDA

View Full Version : ODBC -Punkt statt Komma bei Nachkommazahlen



Jörn
26-06-02, 14:35
Hallo Allerseits,

ich möchte in MS-Access eine Datei per ClientAccess ODBC Treiber anzeigen lassen. Die Datei beinhaltet ein Feld mit dem Daten-Inhalt: 200,73.

Bei Feldern des Feldtyps PACKED mit einer Länge größergleich 16,2 kommt in MS-Access für die Zahl 200,73 folgendes Ergebnis zu Stande: 200.73 Also ein '.' statt ein ',' bei der Nachkommastelle.

Schneide ich das Feld auf die Länge 15,2 so ist die Zahl 200,73 wunderbar per ODBC lesbar. Komma wird zu Komma.

Das Problem trat mit einem Release Wechsel auf.

Vielen Dank für Ihre Hilfe

Jörn

Fuerchau
26-06-02, 17:37
Dieses Problem ist mir auch schon vorgekommen, hat aber mit dem Release der AS/400 nichts zu tun.
Leider ist ein Feld vom Typ Decimal/Zoned in ODBC mit max. 15 Stellen definiert. Größere Felder werden daher auf ODBC-Ebene als Zeichenfelder ausgegeben.
In SQL werden Dezimalzahlen grundsätzlich mit Dezimalpunkt geschrieben, daher Ihre Anzeige.
Es gibt leider nur die Möglichkeit, die Variable im Query mittels Casting in den Typ Double zu konvertieren, leider mit dem Verlust der Genauigkeit (Double max. 17 Stellen), also z.B. "double(>AS/400-Feld<) as Feld".

Jörn
27-06-02, 10:15
Hallo,

vielen Dank für die schnelle Antwort. Sie ist nicht schön. Die Anspielung auf den Reales Wechsel rührt daher, da vor dem Wechsel alle Felder auch oben beschriebener Fall einwandfrei angezeigt wurde.

Da ich viele Felder per SQL berechne und für diese der Feldtyp mit PACKED 31, 2 definiert ist stellt sich jetzt folgende Frage: Kann man diesen Typ standardmäßig auf einen double ändern? Wenn ja wie und wo mache ich das?

Schönen Gruß

Jörn

Fuerchau
28-06-02, 08:03
Jeder berechnete Ausdruck kann gecastet werden:

double(>>Ausdruck<<) as "Feldname"

"Feldname" kann dann direkt verwendet werden.