Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FireDac-Query.Fields[Idx].AsString gibt 147 aus anstelle 147,00

  Alt 2. Mär 2022, 19:54
Danke an alle Helfenden!

@by Frickler,
Du hast Recht, ein CAST(... AS DECIMAL) erzeugt ein TBCDField. Ein CAST(... AS FLOAT) erzeugt ein TFloatField, aber beide Varianten ändern nicht das Verhalten, das die Ausgabe von 147,00 (aus dem SQL-Result) bei der Ausgabe von Qyr.Fields[Idx].DisplayText oder Qyr.Fields[Idx].AsString nur den String 147 ausgibt , anstelle 147,00.

Dein Anstoss mit den TField-Typen hat mich nun aber in eine ganz neue Richtung gelenkt!
Ich habe jetzt folgendes umgesetzt:

Delphi-Quellcode:
  my_Format := '0.00';
  TFloatField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
  TBCDField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
  TFMTBcdField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
  TCurrencyField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;

  s := Qyr.Fields[Idx].DisplayText;
Ich hoffe ich habe alle Typen, die Nachkommastellen haben können, aufgeführt und kann so in meiner Schleife über die Query alles korrekt formatiert in String ausgeben.

@Rolf Frei,
Danke für den Tipp mit dem CAST. Den hatte ich tatsächlich noch im SQL-Statement drin.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat