AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeit (TDateTime) ohne Datum in Datenbank speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit (TDateTime) ohne Datum in Datenbank speichern

Ein Thema von hirnstroem · begonnen am 9. Nov 2006 · letzter Beitrag vom 5. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 09:40
Datenbank: Access • Version: kA • Zugriff über: ADO
'loha Folks,

ich versuche eine Zeit (HH:MM) in der Datenbank abzuspeichern. Wenn z.B. 12:00 eingegeben und gespeichert wird, wird die Zeit automatisch mit dem Datum ergänzt.

In der Datenbank ist der entsprechende Felddatentyp als als Datum/Uhrzeit definiert und das Format ist auf Zeit, 24Std eingestellt, das Eingabeformat ist 00:00;0;_.

Das entsprechende Feld im ADODataSet wurde die Eigenschaft EditMask auf !90:00;1;_ eingestellt.

Der Datentyp in der Feld-Definition ist ftTime.

Kann irgendwie verhindert werden, dass das Datum nun dennoch angehängt wird?

Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 10:11
Zitat von hirnstroem:
ich versuche eine Zeit (HH:MM) in der Datenbank abzuspeichern. Wenn z.B. 12:00 eingegeben und gespeichert wird, wird die Zeit automatisch mit dem Datum ergänzt.

In der Datenbank ist der entsprechende Felddatentyp als als Datum/Uhrzeit definiert und das Format ist auf Zeit, 24Std eingestellt, das Eingabeformat ist 00:00;0;_.
Die Einstellungen in der Datenbank spielen für ADO/Delphi keine Rolle!
Dies wirkt sich nur auf die Darstellung in der Anwendung MS Access aus.

Gib den Feld mal das DisplayFormat 'hh:nn'; das sollte helfen.
Andreas
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 10:23
Danke für die prompte Antwort.

Der Eigenschaft DisplayFormat kann ich zuweisen was ich will, es ändert leider nichts daran, dass die Eingabe mit dem Datum ergänzt wird.

Aus 12:00 wird jeweils 30.12.1899 12:00:00.
inde deus abest
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#4

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 10:24
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 10:28
In der Datenbank wird immer Datum und Uhrzeit gespeichert. Der Datumsanteil 0 führt zur Interpretation 30.12.1899, Abhilfe bei der Darstellung schafft der Hinweis von Andreas.

Grüße vom marabu
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 10:34
Zitat von hirnstroem:
Der Eigenschaft DisplayFormat kann ich zuweisen was ich will, es ändert leider nichts daran, dass die Eingabe mit dem Datum ergänzt wird.
Aus 12:00 wird jeweils 30.12.1899 12:00:00.
WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)
Bist du dir 1000% sicher, dass du das Displayformat vom richtigen Feld geändert hast?
Andreas
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 12:04
Hallo,

also entweder Du benutzt den Datentypen Ttime oder Du kannst auch den Feldtypen in der Datenbank von Date auf String setzten und das ganze dann in delphi per Datentypumwandlung von TTime zu String wandeln und dann so in der Datenbank wegspeichern, ist zwar nicht elegant aber geht, ist nur die Frage ob Du den Date Typen in der DB brauchst oder nicht, oder ob das Speichern des Wertes als String auch ok ist.

Ist halt nur ne Idee.

Gruss
Darkchild
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 12:18
Zitat von Balu der Bär:
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten?
Ja, habe ich. Das mit TDateTime entspricht auch nicht ganz der Wahrheit wie ich gerade sehe. Dies wird lediglich benutzt um Datensätze zu kopieren. Wie auch immer, jetzt wird TTime benutzt und der Datentyp unter FieldDefs ist sowieso schon immer ftTime gewesen.

Zitat von shmia:
WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)
Bist du dir 1000% sicher, dass du das Displayformat vom richtigen Feld geändert hast?
Bin mindestens zu 1000% sicher, denn die Tabelle wurde versuchshalber mit nur diesem einen Feld ausgestattet.



Argh, jetzt funtkioniert es auf einmal und ich weiss nicht weshalb -.-

Vielen Dank für die Hilfe..
inde deus abest
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#9

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 12:19
Moin
Die Einstellungen/Eigenschaften DisplayFormat und EditMask sind nur für das Frontend - sprich der DelphiAnwendung interessant und auch nur für den Benutzer 'wichtig'. Es dürfte hinreichend bekannt sein, dass DisplayFormat - wie das Wort Display=Ansicht schon sagt - die Darstellung=Anzeige des Feldwertes 'anpasst' und dass EditMask dem Anwender nur eine 'Hilfe' gibt, wie die Eingabe richtig zu sein hat.

Zitat von marabu:
In der Datenbank wird immer Datum und Uhrzeit gespeichert. Der Datumsanteil 0 führt zur Interpretation 30.12.1899...
Genau: weil der FeldTyp in der Datenbank DateTime ist

Zitat von shmia:
WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)
In Access, also in der Datenbank! s.o.

Zitat von Balu der Bär:
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten?
Richtig! Wenn nur mit Zeit gearbeitet werden soll, dann empfiehlt sich das

//EDIT: wo war der rote Kasten
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern

  Alt 9. Nov 2006, 12:31
Zitat von raiguen:
Zitat von Balu der Bär:
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten?
Richtig! Wenn nur mit Zeit gearbeitet werden soll, dann empfiehlt sich das
Warum eigentlich? Auch TTime kann ich zahlen >= 1 zuweisen ohne das ich ne Meldung oder sonnst was bekomme ...

Zitat von Controls.pas:
TDate = type TDateTime;
TTime = type TDateTime;
TDateTime = type Double;
Mag ja sein, daß ich was übersehe ... aber was!?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:03 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