Einzelnen Beitrag anzeigen

Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Nur 4 Kommastellen bei der Anzeige?

  Alt 11. Nov 2005, 13:58
Hallo Hansa

Habe die Ursache gefunden für meine Probleme.

Ich lasse meine Feldwerte leer das ist das Problem. Delphi interpretiert den FeldType Decimal(18,6) als BCDFeld

Auszug aus der Delphi Hilfe

Zitat:
Die Funktion erstellt eine neue Variante, deren Wert intern als TBcd-Wert gespeichert wird.

Unit

FMTBcd

Kategorie

Variantenunterstützung

Delphi-Syntax:

procedure VarFMTBcdCreate(var aDest: Variant; const ABcd: TBcd); overload;
function VarFMTBcdCreate: Variant; overload;
function VarFMTBcdCreate(const ABcd: TBcd): Variant; overload;
function VarFMTBcdCreate(const AValue: string, Precision, Scale: Word): Variant; overload;
function VarFMTBcdCreate(const AValue: Double; Precision: Word = 18; Scale: Word = 4): Variant; overload;

C++ Syntax:

extern PACKAGE void __fastcall VarBcdCreate(Variant &aDest, const TBcd ABcd);
extern PACKAGE Variant __fastcall VarBcdCreate(void);
extern PACKAGE Variant __fastcall VarBcdCreate(const TBcd ABcd);
extern PACKAGE Variant __fastcall VarBcdCreate(const AnsiString AValue, Word Precision, Word Scale);

extern PACKAGE Variant __fastcall VarBcdCreate(const double AValue, Word Precision, Word Scale);

Beschreibung

Mit VarBcdCreate können Sie eine Variante erstellen, deren Wert als TBcd-Wert gespeichert wird.

Bei Verwendung der ersten Syntax hat die in aDest zurückgegebene Variante denselben Wert wie ABcd.

Bei Verwendung der zweiten Syntax (es werden keine Argumente übergeben), hat die zurückgegebene Variante den Wert NullBcd.

Bei Verwendung der dritten Syntax hat die zurückgegebene Variante denselben Wert wie ABcd.

Bei Verwendung der anderen Syntaxvarianten wird der Parameter AValue in einen TBcd-Wert mit der angegebenen Genauigkeit (Precision) und Anzahl Dezimalstellen (Scale) konvertiert. Das Ergebnis wird der Variante als Wert zugewiesen.
Besonders der Letzte Absatz ist interessant.

Zitat:
function VarFMTBcdCreate(const AValue: Double; Precision: Word = 18; Scale: Word = 4): Variant; overload;
und
Zitat:
Bei Verwendung der anderen Syntaxvarianten wird der Parameter AValue in einen TBcd-Wert mit der angegebenen Genauigkeit (Precision) und Anzahl Dezimalstellen (Scale) konvertiert. Das Ergebnis wird der Variante als Wert zugewiesen.[/
Jetzt meine Frage wie kann ich mein Problem mit so wenig wie möglich Aufwand ändern. (~800 TADOQuery)


schöne Grüsse
Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat