![]() |
datum/zeit automatisch in tabelle ?
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 |
Re: datum/zeit automatisch in tabelle ?
Hallo macht,
also immer beim Speichern eines Datensatzes oder von Änderungen darin so in der Art:
Code:
oder wie meinst Du das?
Tab.FieldByName('Geaendert').AsDateTime := now;
mfg eddy |
Re: datum/zeit automatisch in tabelle ?
Diese Seite solltest Du Dir vielleicht in die Favoriten legen:
![]() |
Re: datum/zeit automatisch in tabelle ?
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 |
Re: datum/zeit automatisch in tabelle ?
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:
|
Re: datum/zeit automatisch in tabelle ?
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. |
Re: datum/zeit automatisch in tabelle ?
Kennt MySQL Trigger? Wenn ja, dann müßtest Du einen BeforeInsert-Trigger erstellen.
|
Re: datum/zeit automatisch in tabelle ?
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 ? |
Re: datum/zeit automatisch in tabelle ?
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:
im Ereignis "AfterPost" des DataSets mochst Du dann folgendes:
Update TabellenName
set TimeStampFeldName = CURRENT_TIMESTAMP() where IdFeldName = :UnserIdParameter
Delphi-Quellcode:
Gruß
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin Query2.ParamByName('UnserIdParameter').AsInteger := Query1.FieldByName('IdFeldName').AsString; Query2.ExecSQL; end; |
Re: datum/zeit automatisch in tabelle ?
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 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-2025 by Thomas Breitkreuz