1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| procedure TForm1.Table1AfterPost(DataSet: TDataSet);
var
tmp,tabname,H: string;
newval : string;
lign: integer;
col : string;
begin
Lign :=table1.FieldValues['N°'];
col:=DBGrid1.SelectedField.DisplayName;
tmp:= FormatDateTime('dd"/"mm"/"yyyy', Now);
H:= FormatDateTime('hh":"mm":"ss', Now);
tabname:= table1.TableName ;
newVal:=DBGrid1.SelectedField.value;
//suppression d'une enregistrement ancien de meme champ s'il existe
table2.First;
while not table2.Eof do
begin
if (tabname=table2.FieldValues['Tables']) and (lign=table2.FieldValues['ligne']) and (col=table2.FieldValues['colomne']) then
begin
///suppression de l'ancien ligne de la table logtable local
Query1.SQL.Clear;
query1.sql.add('delete * from logTable');
query1.SQL.add('where Tables =:n and ligne=:l and colomne=:c');
Query1.ParambyName('n').value:=tabname;
Query1.ParambyName('l').value:=lign;
Query1.ParambyName('c').value:=col;
Query1.ExecSQL;
end;
table2.next;
end;
//insertion dans la table log :
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO logTable (heure,Version,tables,ligne,colomne,nouvValeur)');
Query1.SQL.Add('VALUES (:H,:tmp,:tabname,:lign,:col,:newval)');
Query1.Params[0].AsString := H;
Query1.Params[1].AsString := tmp;
Query1.Params[2].AsString := tabname;
Query1.Params[3].Asinteger := lign;
Query1.Params[4].AsString := col;
Query1.Params[5].AsString := newval;
Query1.ExecSQL;
end; |
Partager