AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi datum/zeit automatisch in tabelle ?
Thema durchsuchen
Ansicht
Themen-Optionen

datum/zeit automatisch in tabelle ?

Ein Thema von macht · begonnen am 11. Dez 2003 · letzter Beitrag vom 15. Dez 2003
Antwort Antwort
macht

Registriert seit: 28. Okt 2003
Ort: BHV
26 Beiträge
 
#1

datum/zeit automatisch in tabelle ?

  Alt 11. Dez 2003, 15:08
Ist es möglich mySQL so zu konfigurieren, das bei jedem Eintrag in eine Tabelle automatisch Zeit und Datum des Eintrags mitgespeichert werden ?
Und falls ja, wie ?
Vielen Dank im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#2

Re: datum/zeit automatisch in tabelle ?

  Alt 11. Dez 2003, 21:07
Hallo macht,

also immer beim Speichern eines Datensatzes oder von Änderungen darin so in der Art:
Code:
Tab.FieldByName('Geaendert').AsDateTime := now;
oder wie meinst Du das?

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#3

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 01:39
Diese Seite solltest Du Dir vielleicht in die Favoriten legen: Info's zu DatumsTypen - Guckst Du bei "Timestamp"
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
macht

Registriert seit: 28. Okt 2003
Ort: BHV
26 Beiträge
 
#4

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 13:47
Ja das habe ich auch schon gelesen,hilft mir aber leider nicht weiter.
Das Datum soll automatisch in die Tabelle mit eingetragen werden, und nicht vom (Delphi-)Programm stammen, da mehrer User mit evlt unterschiedlichen Zeiten darauf zugreifen und auch evtl andere Software zum eintragen benutzen.

Also am besten sowas wie auto_increment nur eben als auto_date oder so
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 14:23
Also für die Zukunft empfehle ich ernsthaftes Doku-Studium bevor man sich an ein Forum um Hilfe wendet! für diesmal hier auszug von 5 Sekunden Clicken auf der oben von mir verlinkten Seite:

Zitat:
CURDATE()
CURRENT_DATE
Gibt das Datum von heute im 'YYYY-MM-DD'- oder YYYYMMDD-format zurück, abhängig davon, ob die Funktion in einem Zeichenketten- oder in einem numerischen Zusammenhang benutzt wird:
mysql> select CURDATE();
-> '1997-12-15'
mysql> select CURDATE() + 0;
-> 19971215
CURTIME()
CURRENT_TIME
Gibt die aktuelle Zeit als einen Wert im 'HH:MM:SS'- oder HHMMSS-format zurück, abhängig davon, ob die Funktion in einem Zeichenketten- oder in einem numerischen Zusammenhang benutzt wird:
mysql> select CURTIME();
-> '23:50:26'
mysql> select CURTIME() + 0;
-> 235026
NOW()
SYSDATE()
CURRENT_TIMESTAMP
Gibt das aktuelle Datum und die aktuelle Zeit als einen Wert im 'YYYY-MM-DD HH:MM:SS'- oder YYYYMMDDHHMMSS-Format zurück, abhängig davon, ob die Funktion in einem Zeichenketten- oder in einem numerischen Zusammenhang benutzt wird:
mysql> select NOW();
-> '1997-12-15 23:50:26'
mysql> select NOW() + 0;
-> 19971215235026
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(datum)
Ohne Argument aufgerufen gibt die Funktion einen Unix-Zeitstempel zurück (Sekunden seit '1970-01-01 00:00:00' GMT). Wenn UNIX_TIMESTAMP() mit einem datum-Argument aufgerufen wird, gibt sie den Wert des Arguments als Sekunden seit '1970-01-01 00:00:00' GMT zurück. datum kann eine DATE-Zeichenkette, eine DATETIME-Zeichenkette, ein TIMESTAMP oder eine Zahl im Format YYMMDD oder YYYYMMDD in lokaler Zeit sein:
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
Wenn UNIX_TIMESTAMP auf einer TIMESTAMP-Spalte benutzt wird, erhält die Funktion den Wert direkt, ohne implizite ``zeichenkette-zu-unix-zeitstempel''-Umwandlung. Wenn Sie UNIX_TIMESTAMP() einen falschen Wert oder einen Wert ausserhalb des Wertebereichs angeben, gibt sie 0 zurück.
FROM_UNIXTIME(unix_zeitstempel)
Gibt das unix_timestamp-Argument als Wert im 'YYYY-MM-DD HH:MM:SS'- oder YYYYMMDDHHMMSS-Format zurück, abhängig davon, ob die Funktion in einem Zeichenketten- oder in einem numerischen Zusammenhang benutzt wird:
mysql> select FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580) + 0;
-> 19971004222300
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
macht

Registriert seit: 28. Okt 2003
Ort: BHV
26 Beiträge
 
#6

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 14:45
Hm ja, das habe ich schon gelesen, aber das löst mein Problem nicht, oder ich vestehe es nicht.
Ist es denn nicht so das diese Befehle es alle erfordern das sie als "query" dem sql-server mitgeteilt werden ?
Es soll ja vollständig automatisch geschehen.

Ich bitte es zu entschuldigen wenn ich hier die wertvolle Zeit von alteingesessenen Foren-Usern verschwende.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#7

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 14:51
Kennt MySQL Trigger? Wenn ja, dann müßtest Du einen BeforeInsert-Trigger erstellen.
  Mit Zitat antworten Zitat
macht

Registriert seit: 28. Okt 2003
Ort: BHV
26 Beiträge
 
#8

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 14:58
nein kenne / kannte ich nich, ich gucks mir mal eben an

Habs nu gesehn, ist aber irgendwie erst ab mysql v5.0 verfügbar oder ?
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#9

Re: datum/zeit automatisch in tabelle ?

  Alt 12. Dez 2003, 17:35
O.k. O.k. Gelesen, aber nich verstanden is ja was ganz anderes
Also:

Du legst Dir in der betreffenden Tabelle ein Feld vom Typ Timestamp an. Ausserdem solltest Du unbedingt ein IdFeld vom Typ auto_increment in der Tabelle haben (für später merken).
Immer, wenn Du nun einen Datensatz in diese Tabelle Neu einfügst und dabei keinen Wert für die Timestamp-Spalte angibst, setzt der MySQL-Server automatisch einen Wert in diese Spalte. So weit so schön.
Nun kommt es darauf an, was Du möchtest. Reicht Dir das Wissen um die letzte Bearbeitung, oder möchtest Du darüber hinaus auch noch wissen, wann der Datensatz erzeugt wurde?
Im ersten Fall würdest Du nun immer, wenn der Datensatz geändert wird, in das Timestamp-Feld die aktuelle Zeit einfügen.
Ich hör Dich schon schreien: "Was, wenn die Änderung im DB-Grid erfolgt?" Nun. Das DB-Grid ändert nur Feldwerte. Den eigentlichen Datensatz ändert das Dataset (TQuery oder TAdoQuery), an welches Du das Grid über eine TDataSource gekoppelt hast. Und Genau dort, am DataSet, ´kannst Du ansetzen: leg Dir eine 2. Query an. Verpass ihr folgenden SQL-Text:
SQL-Code:
  Update TabellenName
     set TimeStampFeldName = CURRENT_TIMESTAMP()
   where IdFeldName = :UnserIdParameter
im Ereignis "AfterPost" des DataSets mochst Du dann folgendes:
Delphi-Quellcode:
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
  Query2.ParamByName('UnserIdParameter').AsInteger := Query1.FieldByName('IdFeldName').AsString;
  Query2.ExecSQL;
end;
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
macht

Registriert seit: 28. Okt 2003
Ort: BHV
26 Beiträge
 
#10

Re: datum/zeit automatisch in tabelle ?

  Alt 15. Dez 2003, 14:43
Leuselator,
vielen Dank für deine Hilfe ! Mit der Erklärung hats zum Teil geklappt, nur ist das noch nicht so die optimale Lösung. Gespeichert werden soll nur das Datum und die Zeit des ersten Eintragens, nichts anderes. Wäre ja auch mit deiner Lösung nicht das Problem.

Und dieses soll nach die des Servers sein auf der die Datenbank liegt, und nicht die des Users. Aber das sollte doch auch mit dem Query klappen oder ?

Der Hund liegt an der Stelle begraben, das nicht alle User die auf die Datenbank zugreifen einen Delphi-Client nutzen, geschweigeden das gleiche Betriebssystem.
Es handelt sich um eine fertiges System, das größtenteils nicht mehr veränderbar ist. Daher müsste der SQL-Server das alleine übernehmen
  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 21:56 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