![]() |
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 |
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 |
AW: Now() spinnt sporadisch
Entweder wird statt NOW() ein Nullwert übergeben, oder das Systemdatum des PC's zurückgesetzt.
|
AW: Now() spinnt sporadisch
Warum nimmst du nicht ein Timestamp-Feld in der Datenbank ?
|
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 |
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.
|
AW: Now() spinnt sporadisch
Zitat:
Zu deiner Ursprungsfrage : Ich benutze Delphi seit ca. 14 Jahren, sowas habe ich noch nie erlebt. Eventuell falsches Datum/Uhrzeitformat ? |
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 |
AW: Now() spinnt sporadisch
Zitat:
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:
Um abzuchecken, ob es an der DB liegen könnte, werde ich jetzt zunächst alle Eintragungen zusätzlich in einer Textdatei ablegen.
FieldByName('Datum').AsDateTime := Now();
Oswald |
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 10:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz