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ß