Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Now() spinnt sporadisch (https://www.delphipraxis.net/157606-now-spinnt-sporadisch.html)

OsCor 18. Jan 2011 09:14

Now() spinnt sporadisch
 
Hallo Foristen,

ich habe mir jetzt die früheren Threads zum Thema Now() durchgelesen, habe aber immer noch eine Frage (Win7, Delphi2007):
Für ein Programm, was meinen Kollegen erlaubt, Protokoll über bestimmte Vorgänge zu führen, benutze ich die Now-Funktion. Das heißt, jedesmal, wenn was in die entsprechende Datenbank eingetragen wird, soll Now() die aktuelle Zeit liefern - tut es aber nicht immer. Alle paar Tage taucht ein Zeitwert 30.12.99 00:00 auf, was in der nach Zeit sortierten Tabelle die neue Eintragung scheinbar verschwinden läßt.

Bevor ich jetzt einen Workaround schreibe, wollte ich vorsichtshalber nochmal fragen, ob jemand einen Hinweis hat, wie das zustande kommen könnte - und natürlich, ob man das umgehen kann.
Oswald

Sherlock 18. Jan 2011 09:21

AW: Now() spinnt sporadisch
 
Wichtige Frage zuerst: 1899 oder 1999?
Zweitwichtigste Frage: Welche DB?

Now tut bei mir in zahlreichen Applikationen, die teilweise 24/7 laufen klaglos seine Arbeit.
Ich vermute eher, daß was beim wegschreiben des Datums schief geht. Du kannst ja alternativ in eine Textdatei loggen, oder das Now der DB verwenden.

Sherlock

pmoegenb 18. Jan 2011 09:24

AW: Now() spinnt sporadisch
 
Entweder wird statt NOW() ein Nullwert übergeben, oder das Systemdatum des PC's zurückgesetzt.

guinnes 18. Jan 2011 09:27

AW: Now() spinnt sporadisch
 
Warum nimmst du nicht ein Timestamp-Feld in der Datenbank ?

OsCor 18. Jan 2011 09:52

AW: Now() spinnt sporadisch
 
Hallo Sherlock,

deine erste Frage hat mir zwei Sachen gezeigt:
- Du hast eine wichtige Frage gestellt,
- weil ich die Ausgabe in meinem DBGrid nicht mit der der MS-Access-DB verglichen habe.

In der Access-Tabelle wird der Zeitwert "00:00:00" angezeigt. Das heißt, dass die 99 im DBGrid für 1899 stehen müßte.

@pmoegenb
Ich verstehe nicht, wie der Nullwert zustande kommen kann. Unsere Rechner hängen auch alle an einem Zeitserver, müßten also immer die korrekte Systemzeit haben.

@guinnes
Was wäre mit einem Timestamp-Feld besser - abgesehen davon, dass Access so etwas nicht besitzt?

Oswald

DeddyH 18. Jan 2011 09:57

AW: Now() spinnt sporadisch
 
Wenn man per Trigger das Datum oder einen Timestamp einfügen/aktualisieren ließe, müsste man sich programmatisch nicht mehr darum kümmern. Außerdem wäre die Systemzeit der Clients dann wurscht, da ja die des Servers genommen wird. Für Access sehe ich hier allerdings schwarz, da das ja kein C/S-System ist.

guinnes 18. Jan 2011 10:07

AW: Now() spinnt sporadisch
 
Zitat:

Zitat von OsCor (Beitrag 1075443)
@guinnes
Was wäre mit einem Timestamp-Feld besser - abgesehen davon, dass Access so etwas nicht besitzt?

Das du Access benutzt, war mir nicht klar. Bei MySQL z.B. braucht man sich dabei um nichts zu kümmern, das Feld wird automatisch mit Datum/Uhrzeit des Servers gefüllt und auch bei Änderungen automatisch aktualisiert.

Zu deiner Ursprungsfrage : Ich benutze Delphi seit ca. 14 Jahren, sowas habe ich noch nie erlebt. Eventuell falsches Datum/Uhrzeitformat ?

Sherlock 18. Jan 2011 10:12

AW: Now() spinnt sporadisch
 
Ich bin mir jetzt noch sicherer, daß nicht Now das Problem ist, sondern die Stelle, die das Now in die DB schreibt, oder sogar die DB selber :(

Sherlock

OsCor 18. Jan 2011 10:17

AW: Now() spinnt sporadisch
 
Zitat:

Zitat von guinnes (Beitrag 1075448)
Zu deiner Ursprungsfrage : Ich benutze Delphi seit ca. 14 Jahren, sowas habe ich noch nie erlebt. Eventuell falsches Datum/Uhrzeitformat ?

Dein erster Satz gilt auch für mich :-)
Zum zweiten: Mich irritiert das sporadische Vorkommen. Selbst an dem Rechner, an dem der Fehler besonders häufig auftritt, sind die Einträge fast immer korrekt. Der Zeitwert wird so übertragen:
Delphi-Quellcode:
FieldByName('Datum').AsDateTime := Now();
Um abzuchecken, ob es an der DB liegen könnte, werde ich jetzt zunächst alle Eintragungen zusätzlich in einer Textdatei ablegen.

Oswald

Bernerbaer 18. Jan 2011 10:22

AW: Now() spinnt sporadisch
 
Zwar benutze ich Access seit Jahren nicht mehr, doch so weit ich mich erinnere unterstützt Access sehr wohl die Möglichkeit ein Feld automatisch mit der aktuellen Zeit anzulegen.
Wenn man als Standardwert für das betreffende Feld Now() oder Jetzt() definiert, wird automatisch der aktuelle Timestamp abgespeichert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.
Seite 1 von 2  1 2      

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