这与another question相关,但不足以将其包含在原始版本中。在调用Post时,如何获得修改为TField的字段(或字段)?
发布于 2015-02-06 21:04:27
对于日志记录,我使用OnBeforePost事件,它在数据发布之前被称为(正如它所说的)。当然,这样做的缺点是,您的日志表必须有足够宽的字段来容纳所有可能的内容。
procedure TMyData.SomeTableBeforePost(DataSet: TDataSet);
var
i: Integer;
begin
for i := 0 to DataSet.FieldCount - 1 do
begin
// Skip calculated and lookup fields
if DataSet.Fields[i].FieldType = ftData then
begin
if DataSet.Fields[i].OldValue <> DataSet.Fields[i].NewValue then
begin
LogTable.Insert;
LogTableColumnName.AsString := DataSet.Fields[i].FieldName;
LogTableOldValue.Value := DataSet.Fields[i].OldValue;
LogTableNewValue.Value := DataSet.Fields[i].NewValue;
LogTable.Post;
end;
end;
end;
end;https://stackoverflow.com/questions/28372896
复制相似问题