AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DbGrid Integer-Wert als Datum anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

DbGrid Integer-Wert als Datum anzeigen

Ein Thema von BadenPower · begonnen am 11. Jun 2015 · letzter Beitrag vom 12. Jun 2015
Antwort Antwort
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 11. Jun 2015, 15:20
Hallo,

wieso benutzt Du nicht OnGetText und OnSetText von TField?

Siehe auch Data.DB.TField.OnGetText.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 11. Jun 2015, 16:42
Mal doof gefragt:

In der Tabelle ist ein Integer-Feld und die Tabelle kann erweitert werden. Woran erkennst du ob du dieses Feld jetzt wie ein Datum behandeln musst oder eben doch als einfachen Integer?

Da müsste es jetzt zusätzliche Meta-Daten geben, aus denen du dann eine Tabelle aufbauen kannst und dann mit den Werten aus der echten Tabelle (inkl. Konvertierung) füllst.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 11. Jun 2015, 17:08
Woran erkennst du ob du dieses Feld jetzt wie ein Datum behandeln musst oder eben doch als einfachen Integer?
Bei den erweiterten Feldern ist dies nicht erforderlich, da nicht vorgesehen.

Es wird zwar in den Formularen die Möglichkeit geboten die durch den Nutzer erweiterten Felder in DBMemo oder DBEdit je nach Datentyp und im DBGrid zu editieren, aber es findet keine Formatierung der Ausgabe/Eingabe statt.

Dies betrifft nur die in der Grundsoftware zwingend vorgegebnen Datenbankfelder. Und dort ist der Datentyp und der Verwendungszweck klar definiert.


Da müsste es jetzt zusätzliche Meta-Daten geben, aus denen du dann eine Tabelle aufbauen kannst und dann mit den Werten aus der echten Tabelle (inkl. Konvertierung) füllst.
Dass ist eine gute Idee und mal schauen, ob ich so etwas noch einbauen werde, nach dem Motto:

"Wenn Du etwas erweiterst und eine gewisse Anzeige/Formatierung haben möchtest, dann hinterlege dies in einer Datenbank."
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 11. Jun 2015, 18:03
Kann mySQL 'updateable views'? Dann wäre das ein denkbarer Weg. Die View zeigt die Daten so an, wie sie editiert werden sollen. Um Instead-Of-Trigger der View konvertierst du dann die Daten wieder in den Originalwert.

Diese View kannst Du auch automatisch erstellen, anhand der Metadaten oder was auch immer Du für Informationen hast.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#5

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 11. Jun 2015, 18:58
Kann mySQL 'updateable views'? Dann wäre das ein denkbarer Weg. Die View zeigt die Daten so an, wie sie editiert werden sollen.
Auch ein guter Ansatz, aber für meinen Fall nicht unbedingt dass was ich haben möchte, da ich an der Datenbankstruktur selbst nichts verändern möchte.

Es kann durchaus vorkommen, dass die gesamte Datenbank zusätzlich als Mirror auf einem anderen DBMS läuft, als die Life-Daten und die Arbeitsdaten. Im ungünstigsten Fall habe ich dann 3 verschiedene Datenbanksysteme, welche übergreifend mit den selben Formularen abgedeckt werden müssen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: DbGrid Integer-Wert als Datum anzeigen

  Alt 12. Jun 2015, 03:02
Das hatte ich befürchtet.
wieso benutzt Du nicht OnGetText und OnSetText von TField?
Wenn das TDBDateTimeEdit mitmacht, wäre das die Lösung: Immerhin handelt es sich um ein TIntegerField.

Du könntest die Daten auch in einem TClientDataset vorhalten, dem Du ein TDateTimeField spendiert hast (und eventuell weitere Felder). Das lohnt sich dann, wenn Du die Daten eh von Hand persistierst.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 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-2025 by Thomas Breitkreuz