Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

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

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

  Alt 1. Mär 2022, 12:06
Datenbank: ZEN • Version: 14 • Zugriff über: FireDAC/ ODBC
Hallo,

ich muss eine csv-Datei erzeugen mit Daten aus einer Datenbank. Dabei muss ich für alle nummerischen Werte eine Norm einhalten (nnn,nn).
Also wende ich im SQL-Statement brav
Code:
CAST( <SPALTE_X> As DECIMAL(3,2) )
an. Das Result zeigt auch alle nummerischen Werte in dem Format nnn,nn an.

Wenn ich nun in Delphi Qry.Fields[Idx].AsString anwende, wird anstelle 147,00 dann nur noch 147 ausgegeben. Ich muss das als ".AsString" casten wegen Ausgabe in eine TStringList, die später das Ganze als csv-Datei wegspeichert.

Erschwerend: Es ist ein dynamisches SQL-Statement, dass der Anwender über einen Dialog zusammenstellt. Ich weiß also nicht welche Spalte welchen Datentyp hat. Ich will vermeiden, dass ich die ganzen Datentypen pro Spalte abprüfen muss um es dann entsprechend zu formatieren.
Weiß jemand wie ich bei Verwendung des Cast "AsString" bei einer Query das Ganze so anpassen kann, dass bei Zahlen diese immer im Format nnn,nn ausgegeben werden? In den ganzen Query-Optionen habe ich nichts gefunden.

Vielen Dank!
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