if ADOTable1.fields[0].newvalue<>ADOTable1.fields[0].oldvalue then showmessage('Edit');
你可以在datasource 里的ondatachange做出判斷.
比较同意BOZ兄 如果你是用的CACHE来提交的 数据集控件好像有个属性是updatestatus,你可以参考DELPHI HELP 上面应该都很清楚的描述哪些记录被删除,哪些被修改等
updatestauts参数值: usUnmodified The current record has no unapplied cached updates. usModified The current record has unapplied modifiecations. usInserted The current record has been inserted but the insertion was not applied.usDeleted The current record represents a deleted record, where the deletion has not yet been applied.
Qry.Filtered:=false;
Qry.Filtered:=true;
Qry.FilterGroup:=fgPendingRecords ;
showmessage('Edit');
如果你是用的CACHE来提交的
数据集控件好像有个属性是updatestatus,你可以参考DELPHI HELP
上面应该都很清楚的描述哪些记录被删除,哪些被修改等
usUnmodified The current record has no unapplied cached updates.
usModified The current record has unapplied modifiecations.
usInserted The current record has been inserted but the insertion was not applied.usDeleted The current record represents a deleted record, where the deletion has not yet been applied.
ftp://book:[email protected]/pro/delphi/Delphi5.xADO_MTS_COM+高级程序设计篇.rar
若没有宽带:我可以拷贝一段解释
FgUnassigned 指定不使用任何的过滤器来过滤数据
fgNone 移去任何的过滤器,让所有的数据都显示出来。这也可以通过设定ADO的Filtered属性值为False来达到
fgPendingRecords 只显示被修改过但尚未更新回数据源的数据或被修改过但尚未被取消更新的数据
fgAffectedRecords只显示受到上一次更新回数据源影响的数据
fgFetchedRecords 只显示在目前更新缓存之中的数据。这些数据是在上一次
从数据源取得之后所有储存在客户端的数据
fgPredicate 只显示刚被删除的数据
fgConflictingRecords 只显示被修改过但当更新回数据源时发生错误的数据