![]() |
Datenbank: SQLite • Version: ? • Zugriff über: FireDac
FireDAC, DisplayFormat
Hallo zusammen,
habe ein kleines Problem und hoffe hier eine Lösung zu erhalten. Ich musste eine Paradox-Tabelle über Umwege in eine SQLite DB portieren (eigentlich problemlos). Mit FireDAC-Komponenten möchte ich nun weitermachen. Nun habe ich im Feld Datum schöne LongInteger-Werte stehen, welche im DB-Grid auch als solche angezeigt werden. Um ein CalcField-Ereignis zur Umwandlung zu vermeiden möchte ich im Objectinspector für das Feld Datum (FDTable1Datum) den Parameter FormatDisplay verwenden um eine vernünftige Datumsanzeige im Grid zu erhalten. All meine Versuche scheitern kläglich, ich kann Tausendertrennzeichen und/oder Nachkommastellen einfügen, aber ein "Datum" spuckt er mir nicht aus! Wie bitte lautet der richtige Formatstring in einem solchen Fall? Ich verwende Delphi 10.2 Herzlichen Dank im Voraus Hans |
AW: FireDAC, DisplayFormat
Hallo,
was sind das denn für "schöne" Longinteger-Zahlen? Schau mal,hier bei Unix Time stamp (unixepoch) ![]() |
AW: FireDAC, DisplayFormat
Hallo Heiko,
danke für die schnelle Antwort. Die LongInteger-Zahlen sind : 0 für 31.12.1899 und zB 43795 für 26.11.2019. (sind wohl nur Integer …) Danke auch für den Link; da ich mit der TFDTable-Komponente arbeiten möchte, hilft mir eine SQL-Abfrage vorläufig wenig. Grüße Hans |
AW: FireDAC, DisplayFormat
Warum möchtest Du mit der Table Komponente arbeiten? Das bietet sich nicht wirklich an, wenn die Tabelle wächst oder bereits groß ist. SQL basierte Systeme verhalten sich anders als Paradox.
Du könntest die Daten einmalig konverieren und in ein normales Datetime Feld umwandeln, wie es von SQLite unterstützt wird, statt das weiter mitzuschleppen und immer umzurechnen. Oder Du versuchst, der Table ein berechnetes Feld hinzuzufügen. An der Stelle wäre man schon an dem ersten Punkt, warum man lieber Queries verwendet. |
AW: FireDAC, DisplayFormat
Hallo,
Zitat:
( ![]() Wenn das stimmt, müsste DisplayFormat dann ja dd.mm.yyyy sein. |
AW: FireDAC, DisplayFormat
Richtigstellung: 0 steht natürlich für 30.12.1899 und der Datentyp dürfte wohl Double sein, aber das ändert nichts an meinem Problem.
Der String dd.mm.yyyy (und ähnliche) im Feld DisplayFormat bewirkt lediglich dass im Grid eben dieser String ausgegeben wird, nicht einmal mehr der numeriwsche Wert aus der Datenbank. Grüße Hans |
AW: FireDAC, DisplayFormat
Hallo,
es gibt doch noch das OnGetText, u.a. hier (obwohl lazarus) ![]() oder hier (etwas weiter unten) ![]() |
AW: FireDAC, DisplayFormat
Danke an alle!
OnGetText ist eine elegante Methode das gewünschte Ergebnis zu erzielen, auch das OnCalcFields ist gut (und universeller) einsetzbar. Ich vermute dass im Parameter Displayformat eine Konvertierung (Double zu DateTime oder ähnlich) nicht vorgesehen ist und nur "native" Werte (Datum, Zahlen,...) formatiert werden können. Man möge mich eines Besseren belehren... Schöne Grüße Hans |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz