AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Date auf null setzen????

Offene Frage von "leviathan666"
Ein Thema von O.T. · begonnen am 3. Feb 2004 · letzter Beitrag vom 26. Okt 2004
Antwort Antwort
O.T.

Registriert seit: 5. Sep 2003
Ort: München
13 Beiträge
 
#1

Date auf null setzen????

  Alt 3. Feb 2004, 17:43
Hey Leute.

Hab n Problem


Und zwar muss ich einen Wert von typ Date auf null setzen.

Hab ein Objekt mit einer Eigenschaft vom Typ "Date". Dieses Objekt wird in eine Datenbank geschrieben und ich will das genau in diesem Wert nichts drinsteht.

Setze ich das Date auf '0', so steht immer das Default-Datum darin (irgenwas mit xx.xx.1899 oder so glaub ich).

Wie mach ich das das genau die Zelle in der Datenbank leer ist???

Wisst ihr was ich meine, kann mir einer helfen????


Badanke mich jetzt schon................


Machts gut..............
  Mit Zitat antworten Zitat
Michael Leyhe

Registriert seit: 1. Dez 2003
Ort: Sprockhövel
101 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Date auf null setzen????

  Alt 3. Feb 2004, 17:55
HI

Also ich weiss nicht genau was du meinst aber der Typ Date ist folgendermaßen aufgebaut:

Tag . Monat . Jahr --> das heutige Datum 03.02.2004

wenn du dies auf Null setzten willst dann musst du folgendes tun

Delphi-Quellcode:
var datum :Tdate;

...

datum := '00.00.0000';
Kann sein das du was anderes meints, aber ich wüsste dann nicht was.
Michael
Wer weis vll. ist das Leben ja ein Integer, wenn man negativ genug denkt wird es irgendwann positiv.
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#3

Re: Date auf null setzen????

  Alt 3. Feb 2004, 17:59
Zitat von O.T.:
...
Setze ich das Date auf '0', so steht immer das Default-Datum darin (irgenwas mit xx.xx.1899 oder so glaub ich).

Wie mach ich das das genau die Zelle in der Datenbank leer ist???

Wisst ihr was ich meine, kann mir einer helfen????...
Der Typ TDate ist so festgelegt, dass ein Wert 0 dem "30.12.1899" entspricht. d.h. Wenn du ein "Null-Datum" möchtest, musst du eben diesen Wert "negativ" reinschreiben. Ein Tag entspricht 1.
d.h. du müssteigentlich "1900*364.25-1" abziehen. Allerdings hab ichs grad ausprobiert und gemerkt, dass ein Jahr mit 366 Tagen gerechnet wird (Hä, warum das)
Delphi-Quellcode:
var TDate ADate;
begin
  ADate:=-1900*366+1;
  ...
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#4

Re: Date auf null setzen????

  Alt 3. Feb 2004, 18:01
Zitat von Michael Leyhe:
Delphi-Quellcode:
var datum :Tdate;

...

datum := '00.00.0000'; // Hier Fehler
[Error] Unit1.pas(35): Incompatible types: 'TDate' and 'String'
Irgendwie logisch, oder?
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Date auf null setzen????

  Alt 3. Feb 2004, 18:38
moin moin,

wenn du unbedingt das Datum "00.00.0000" in deiner Datenbank stehen haben willst (mir ist zwar schleierhaft warum ... aber egal) dann musst du vom Standardwert "30.12.1899" die Differenz abziehen. Freundlicherweise hat Borland exakt diesen Wert in der Variable "DateDelta" hinterlegt (zumindest in D7, flls dem in anderen Versionen nicht so ist steht der Wert bei mir mit"
const DateDelta = 693594" in der Hilfe);

cu phoenix

PS.: du kannst tDatetime Variablen nur tDatetime oder real zuweisen. Dabei stehen die Vorkommastellen für Tage seit dem "30.12.1899" und die Nachkommastellen für den Rest in Tagesbruchteilen.
Peter Enenkel
  Mit Zitat antworten Zitat
leviathan666

Registriert seit: 22. Okt 2004
Ort: Dudweiler
5 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Date auf null setzen????

  Alt 26. Okt 2004, 13:19
Also, ich hatte das selbe Problem, und habe versucht, es mit der DateDelta-Konstante zu lösen, jedoch lautet bei mir das Datum dann: "28.12.3798". Und nu?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Date auf null setzen????

  Alt 26. Okt 2004, 13:56
ich denk ma du hast plus gerechnet
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
shmia

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

Re: Date auf null setzen????

  Alt 26. Okt 2004, 14:18
So wird ein Feld auf NULL gesetzt:
Delphi-Quellcode:
Query1.Edit;
Query1.FieldByName('Datum').Clear;
Query1.Post;
Man kann z.B. dafür sorgen, dass ein Datumsfeld explizit auf NULL gesetzt wird:
Delphi-Quellcode:
procedure TForm1.Query1BeforePost(DataSet: TDataSet);
var
   f : Field;
begin
   f:= Dataset.FieldByName('Datum');

   // ein Datum um das Jahr 1900 kann ja nichts sein
   if f.AsDateTime < 1.0 then
      f.Clear; // deshalb löschen
end;
Andreas
  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 03:37 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