DBDateEdit Sprint auf 30.12.1899

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
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

DBDateEdit Sprint auf 30.12.1899

Beitrag von ErnstVolker »

Guten Morgen,

ich habe ein kleines Projekt im Anhang mit einem DBDateEdit. Immer wenn ich im DBNavigator auf das "+" drücke und einen neuen Datensatz eingeben will springt das DBEdit auf den 30.12.1899 und ich muß mein Wunschdatum händisch eingeben, kann es nicht über den Kalender wählen.

Was mache ich falsch?

Viele Grüße

Volker
Dateianhänge
Archiv.zip
(800.81 KiB) 29-mal heruntergeladen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von fliegermichl »

Dieses Datum ist der Tag 0 im TDateTime.

Abhängig von der Datenbank könntest Du dem Datumsfeld einen Defaultwert "Now" geben.

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: DBDateEdit Sprint auf 30.12.1899

Beitrag von ErnstVolker »

Hallo,
kann man "Now" oder "Today" oder ähnliches über den Objektinspektor zuweisen, oder nimmt man das Button-Click-Ereignis? Button-Click o.ä. funktioniert vermutlich immer.
Ein Datum-Picker ohne Datenbank-Anbindung macht automatisch das aktuelle Tagesdatum wenn man auf die Schaltfläche drückt. Deshalb dachte ich, DBDateEdit macht das genauso.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von six1 »

DBDateEdit soll den Inhalt der DB zeigen!
Wenn du einen neuen Datensatz anlegst und keinen Default Wert in der DB für das Feld angegeben hast, ist der normalerweise 0
0 ist eben auch das Datum: 31.12.1899
Gruß, Michael

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von fliegermichl »

So hatte ich das auch gemeint. Mich aber etwas unglücklich ausgedrückt.

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von sstvmaster »

Im Objektinspektor gibt es die Eigenschaft: "DefaultToday", den auf True setzen?
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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: DBDateEdit Sprint auf 30.12.1899

Beitrag von ErnstVolker »

Aahh, jetzt verstehe ich das!

DefaultToday bringt nur was, wenn man die kleine "15", sprich das Icon drückt um den Kalender zu wählen. Dann kommt im darunter liegenden Kalender der heutige Tag. Aber nicht, wenn man das "+" am DBNaviagtor drückt.

Jetzt wo Ihr's sagt ist's mir auch klar. Ich dachte, wenn ich mit dem "+" am DBNavigator einen Datensatz hinzufügen möchte, würde die im Objektinspektor gesetzte Eigenschaft "DefaultToday auf True" bewirken, dass im DBDateEdit Today als Vorschlag kommt und nicht der 31.12.1899.

Wenn aber nur das Datum in der Datenbank angezeigt wird, dann nimmt DBEditor bei "+" den 31.12.1899. Ich muß bei "+" den Quelltext entsprechend ändern und mitteilen, dass ich Today haben will.

Jetzt verstehe ich es. Wobei ich es schade finde, dass es nicht so reagiert wie ich's mir vorgestellt habe :-)

Vielen Dank!

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von six1 »

ErnstVolker hat geschrieben:
Do 8. Sep 2022, 18:25
Wobei ich es schade finde, dass es nicht so reagiert wie ich's mir vorgestellt habe :-)
Hattest du sowas schon mal? :lol:
Gruß, Michael

TBug
Beiträge: 177
Registriert: Mi 2. Sep 2015, 11:09
OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
CPU-Target: Windows 32/64bit

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von TBug »

Hallo zusammen,
six1 hat geschrieben:
Do 8. Sep 2022, 14:06
DBDateEdit soll den Inhalt der DB zeigen!
Wenn du einen neuen Datensatz anlegst und keinen Default Wert in der DB für das Feld angegeben hast, ist der normalerweise 0
0 ist eben auch das Datum: 31.12.1899
Nein!
Der 31.12.1899 wäre aber nicht 0, sondern 1.
ErnstVolker hat geschrieben:
Do 8. Sep 2022, 18:25
DefaultToday bringt nur was, wenn man die kleine "15", sprich das Icon drückt um den Kalender zu wählen. Dann kommt im darunter liegenden Kalender der heutige Tag. Aber nicht, wenn man das "+" am DBNaviagtor drückt.
Auch Nein!
Ist der Wert des Datenfeldes 0 dann wird im DBDateEdit bei aktiviertem DefaultToday das aktuelle Datum angezeigt.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von six1 »

ja, ok, ok, dann ist es der 30.12.1899 habe das so aus dem Kopf geschrieben.
Für die Problematik an sich ist dies auch unerheblich; du hast verstanden, was ich meine.
Gruß, Michael

TBug
Beiträge: 177
Registriert: Mi 2. Sep 2015, 11:09
OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
CPU-Target: Windows 32/64bit

Re: DBDateEdit Sprint auf 30.12.1899

Beitrag von TBug »

Hallo zusammen,
ErnstVolker hat geschrieben:
Do 8. Sep 2022, 08:04
ich habe ein kleines Projekt im Anhang mit einem DBDateEdit. Immer wenn ich im DBNavigator auf das "+" drücke und einen neuen Datensatz eingeben will springt das DBEdit auf den 30.12.1899 und ich muß mein Wunschdatum händisch eingeben, kann es nicht über den Kalender wählen.
Also, ich kann das beschriebene "Problem" des TE nicht nachvollziehen.

DBDateEdit zeigt bei einem neuen Datensatz den hinterlegten Hint (oder nichts an), wenn die Property DefaultToday nicht gesetzt ist und entsprechend das aktuelle Datum, wenn DefaultToday gesetzt wurde.

Und dies mit einem eigenen Test-Projekt und mit dem des TE (allerdings ohne Report)
Niemals wird aber der 30.12.1899 angezeigt.

Kann wirklich jemand tatsächlich ein Fehlverhalten der DBDateEdit-Komponente nachvollziehen?

Antworten