dataset 如何 得到 "增加\删除\修改" 的记录内容
小弟我刚学习delphi关于dataset有几个问题搞不明白,就是在一个数据集被打开以后,没有post前(如dbgrid编辑中没有保存)如何判断用户在这个数据集中进行了那些操作,比如那些记录是"新增"的,那几条又被"删除"了,我现在只知道修改可以用NEWVALUE 和 OLDVALUE 进行比较看记录的那些值被修改过,不知删除和新增的"内容"如何得到.(我想用这些东西作一个操作记录,比如新增了几条记录,记录的内容是什么,删除了几条内容,被删除的内容是什么)
[解决办法]
如果是用大型数据库的话就用触发器吧!
[解决办法]
while not DataSet.Eof do
begin
if DataSet.UpdateState = usModified then
ShowMessage('Modified');
DataSet.Next;
end;
上面对所有 DataSet 通用
ado 也用上面这个, 前提是 LockType 为 batchoptimatic,只有未提交的数据才有效,其它LockType都是直接改完提交,所以没效果
ClientDataSet.StatusFilter = [usDeleted];这样,ClientDataSet就只能看到被删的记录,类似于Filter,这个只不过是对记录状态进行Filter;