Formatierung, Feld aus MySQL

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
stang6t8coupe
Beiträge: 5
Registriert: Mo 30. Jun 2014, 22:16

Formatierung, Feld aus MySQL

Beitrag von stang6t8coupe »

Hallo,

ich habe gerade ein Problem mit einem Feld das aus der MYSQL-DB kommt. Das ist als Decimal 5,2 angelegt.

Dem möchte ich gerne über die FieldList eine Formatierung als Currency vorgeben. Leider ist mit dieser Einstellung im Grid nur 0,00 zu sehen, die wirklichen Werte sind nicht sichtbar. Hat das irgendwas mit dem Dezimal.- und Tausendertrennzeichen zu tun?

Wenn ich in der FIeldListe eine Formatvorgabe z.B. #.## oder #,## eingeben ändert das auch nix, es wird immer nur 0,00 angezeigt.

Grüße
Adrian

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Formatierung, Feld aus MySQL

Beitrag von Michl »

Bei mir funktioniert unter Win7, MySQL 5.6, Lazarus 1.3 die Darstellung problemlos.

z.B:

Code: Alles auswählen

procedure TForm1.SQLQuery2AfterOpen(DataSet: TDataSet);
...
  TFloatField(SQLQuery2.FieldByName('einnahme')).DisplayFormat:='###.00';
...

Womit arbeitest Du denn (OS, Lazarus-Version, MySQL-Version)?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

stang6t8coupe
Beiträge: 5
Registriert: Mo 30. Jun 2014, 22:16

Re: Formatierung, Feld aus MySQL

Beitrag von stang6t8coupe »

Hi,

mit deinem Code funktioniert es :-) Ich bin mit der Feldliste verzweifelt, keine Ahnung warum das nicht geklappt hat.

Habe Win8, MySQL5.5 und Lazarus 1.2.4

Danke!

Adrian

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Formatierung, Feld aus MySQL

Beitrag von ErnstVolker »

Guten Abend,

ich hänge mich mit meiner Frage hier mal an, denn das Problem ist ähnlich und man kann erkennen dass ich bereits Suchmaschinen bemüht habe...

Auf Manjaro Linux KDE mit Lazarus 2.2.4, FPC 3.2.2, ZEOS 7.2.14-release verusche ich aus einer PostgreSQL-Datenbank 15.1 einen Währungswert zu empfangen. Dieser ist in Postgres mit dem Type "money" definiert. Im RxDBGrid wird nur 0,00 € angezeigt.

Den Lösungsansatz von Michl mit Vorgabe des Formates habe ich probiert, war nicht zielführend.

Was mache ich falsch?

Vielen Dank und viele Grüße

Volker

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Formatierung, Feld aus MySQL

Beitrag von ErnstVolker »

Abhilfe:
In PG den Datentyp von "money" auf numeric(18,2) geändert und der Wert kommt rüber. Lästig dabei ist, dass man in PG alle Tabellen und Views verliert, die kaskadierend mit der zu ändernden Tabelle in Verbindung stehen.

Ich dachte die Lazarus bzw. die ZEOS-Komponente könnte den PG-Datentyp "money" verarbeiten. Scheinbar nicht.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Formatierung, Feld aus MySQL

Beitrag von af0815 »

ErnstVolker hat geschrieben:
Mo 27. Mär 2023, 13:50
Ich dachte die Lazarus bzw. die ZEOS-Komponente könnte den PG-Datentyp "money" verarbeiten. Scheinbar nicht.
Es gibt ein eigenes ZEOS Forum, das ist die Wahrscheinlichkeit einer Antwort sehr hoch. Vor allen ist auch immer die Frage ob die Version von ZEOS noch passt, weil auch dort wird fleissig gearbeitet.

Bei SQLDB zum Beispiel habe ich anhand der Sourcen gesehen, das eine Menge an Datentypen dazukommen werden. Dort habe ich auch gesehen wie die Daten zwischen den Metadaten der DB und den Datentypen in Pascal zugeordnet werden. Ich gehe davon aus, das das bei ZEOS auch vorhanden ist. Man kann also hineinschauen, ob dort wirklich keine Zuordnung vorhanden ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten