AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme Dezimalzahlen die als BCD in Oracle abgelegt sind
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme Dezimalzahlen die als BCD in Oracle abgelegt sind

Ein Thema von I_need_help · begonnen am 2. Feb 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
I_need_help
(Gast)

n/a Beiträge
 
#1

Probleme Dezimalzahlen die als BCD in Oracle abgelegt sind

  Alt 2. Feb 2004, 15:23
Hallo zusammen,

seit einiger Zeit schlage ich mich mit einem problem herum und finde keine lösung. ich habe dezimalwerte, die in einer oracle-db als bcd gespeichert sind. mit meinem kleinen delphi-programm will ich nun einen select auf die db machen und diese werte in eine csv-datei schreiben.

das problem: nach dem select steht im ergebnis nicht wie gewünscht eine (bspw.) 12,25 sondern eine 1225.

ich hab es mit sqlquery versucht, mit sqldataset und mit dem clientdataset. immer das gleiche. führe ich denselben select im delphieigenen sql-explorer aus, ist die anzeige des ergebnisses korrekt. nur die abfrage im quellcode scheint nicht das gewünschte ergebnis zu bringen.

ich bin echt ratlos und die sache nervt. weiß jemand ne lösung oder die ursache des problems?? ich bin für jeden hinweis dankbar!!!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Probleme Dezimalzahlen die als BCD in Oracle abgelegt si

  Alt 2. Feb 2004, 15:50
Für Oracle-Zugriffe kann ich dir nur dieses Package empfehlen.
Im Gegensatz zu den Standard-DB-Kompos funktioniert damit einfach alles!
Dieses Package enkapselt direkt die API des Oracle-clients -> du hast superschnellen Zugriff auf (fast) alle speziellen Features von Oracle.

p.s.: Den Datentyp BCD kenne ich nicht, meintest du vielleicht "EBCDIC" ("extended binary coded decimal interchange code" oder so )
  Mit Zitat antworten Zitat
I_need_help
(Gast)

n/a Beiträge
 
#3

Re: Probleme Dezimalzahlen die als BCD in Oracle abgelegt si

  Alt 2. Feb 2004, 16:04
als ich mal geprüft habe, was für ein datentyp wirklich dahintersteckt, ist das prog bei ftFMTBcd: angesprungen.

das mit nem extra-tool ist zwar ganz toll, aber geht es nicht auch ohne?? oder funktioniert das ganze vielleicht auch besser mit ner neueren delphi-version?
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Probleme Dezimalzahlen die als BCD in Oracle abgelegt si

  Alt 2. Feb 2004, 16:14
Dieses Package ersetzt alle Standard-DB-Kompos (Datasource, Query, Dataset, Navigator,...) es hat den Vorteil, dass es wesentlich mehr Funktionen enthält, wesentlich schneller & stabiler läuft (ist ja genau auf Oracle getrimmt!).
Die 229€ (inc. OracleMonitor) solltest du schon investieren, wenn du viel mit Oracle zu tun hast.

Wenn du es mit den ADO-Zeugs versuchen willst, bastel mal mit NumericScale, Precision & Size rum.

Nachtrag:
Hab gerade mal eine ADOQuery auf ein Form gepackt und: es gibt eine Eigenschaft namens "EnableBCD" und im Code müsstest du so den Wert lesen können:
  XYZ := AdoQuery1.FieldByName('DeinFeld').AsBCD; Keine Ahnung ob es so funktioniert, aber mit ein bisschen rumbasteln findest du bestimmmt die richtige Lösung.
  Mit Zitat antworten Zitat
I_need_help
(Gast)

n/a Beiträge
 
#5

Re: Probleme Dezimalzahlen die als BCD in Oracle abgelegt si

  Alt 2. Feb 2004, 17:29
juppieh, ich hab ne lösung gefunden, die mir erst mal auf die schnelle hilft:
Delphi-Quellcode:
zeile:String;
erg:Double;

erg := BcdToDouble(SQLQuery1.Fields[j].AsBCD);
erg := erg / 100000;
zeile := zeile + FloatToStr(erg);
manchmal sieht man den wald vor lauter bäumen nicht

aber danke trotzdem.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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