AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Format Date / Time im DBGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Format Date / Time im DBGrid

Ein Thema von Jumpy · begonnen am 20. Feb 2018 · letzter Beitrag vom 20. Feb 2018
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#1

Format Date / Time im DBGrid

  Alt 20. Feb 2018, 12:08
Datenbank: Oracle • Version: 11g • Zugriff über: ADO+ODBC
Hallo,

beim Anzeigen einer Tabelle im DBGird gibt es folgendes Frage: Die Tabelle hat ein Feld Namens P_Date und ein Feld Namens P_Time und beide sind vom Oracle-Datentyp Date. Der einzige Unterschied den ich finden konnte ist, dass P_Date nicht nullable ist
Im DBGrid wird nun bei P_Date nur das Datum angezeigt, in P_Time Datum und Uhrzeit, wobei der Datumsteil der 01.01.1899 oder sowas ist, ich vermute mal Tag 0 der Datenbank.

Die Frage ist nun, woran das DBGrid diese beiden Unterscheidet und einmal die Uhrzeit weg lässt und einmal diese mit anzeigt. Noch besser wäre natürlich gewesen nur den Zeit-Anteil anzugzeigen.

Ich vermute mal es geht über den DataType des Feldes, aber wie kann der anders sein, wo doch in der DB beide gleich (Date) sind. Oder interpretiert da eine der Zugriffskomponenten das irgendwie, z.B. haben die ersten 20 Zeilen keine Nachkommastelle (intern ist ja alles immer ein Float(?)), dann zeige das als reines Datum an oder sowas?

Weißt da jemand, wo in den Komponenten da die Entscheidungsfindung ist?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Format Date / Time im DBGrid

  Alt 20. Feb 2018, 12:32
Normalerweise wird in Ergebnis der Datenbank Metadaten mitgeliefert welche Spalte von welchen Typ ist.

Da deine Zugriffspfad über ADO und ODBC alles anders als "Unproblematisch" ist, kann es sein das beim Mappen der Oracle-Typen auf ODBC, dann auf ADO und dann auf die Delphi-Typen informationen verloren gehen oder eine falsches Mapping erfolgt.

Besser ist es bei Oracle direkt oder über den Oracle-Net-Treiber zu gehen.
Neurere Delphi-Versionen bietetn das von sich aus an (FireDac) oder man verwendet die Unidac/OraDac-Komponenten von DevArt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Format Date / Time im DBGrid

  Alt 20. Feb 2018, 13:43
Genau das umgekehrte ist eigentlich das Problem. Die Anzeige ist ja (ohne eigenes dazu tun) wie gewünscht, sprich mal nur das Datum, mal das Datum mit Uhrzeit (obwohl es in der Datenbank alles den selben Datentyp hat (oder zu haben scheint) mit Oracle's SQL-Developer geprüft)?

Ich kriege das Ganze halt mit anderen Zugriffskomponenten (JDBC für ein Java-Tool) nicht hin, sprich die Meta-Daten sehen bei beiden Feldern scheinbar gleich aus. Und ich will halt wissen, wieso kriegt das olle ADO/ODBC das out of the box genau so hin wie ich das will und JDBC nicht.
Ralph
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#4

AW: Format Date / Time im DBGrid

  Alt 20. Feb 2018, 15:42
Hmm..

Ich vermute, dass das ADO das garnicht anders hinbekommet..

Es ist eher das DBGrid, welches bei einer Uhrzeit von 0 einfach nicht '00:00:00' sondern '' anzeigt.

Beim Dataset (Query) gibt es für jedes Field ein Displayformat. Trage hier mal bei den DateTime Feldern etwas ein...

Edit:
Teste mal mit einem einfachen DateTimeToStr(0.0) wie dies angezeigt wird..
  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 23:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz