如何判断一条记录什么字段被修改了

bluesukeke 2010-09-02 02:00:12
查询出来数据,在数据集编辑状态下,如何判断一条记录被修改了,哪些字段被修改了。
...全文
280 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxieyang 2010-09-02
  • 打赏
  • 举报
回复
刚刚看了看ADO的代码,好像通过判断
(ADOQuery1.Recordset.Fields[i].Attributes and (adFldUpdatable + adFldUnknownUpdatable)) <> 0
来确定当前记录的当前字段释放被改写了。
这个我没有测试过,你可以自己试试看
上面的表达式为True,则表示当前记录的当前字段被修改了,结合着ADOQuery1.RecordStatus,应该就是最简单的判断了吧
wxieyang 2010-09-02
  • 打赏
  • 举报
回复
另外,你可以通过每条记录的 RecordStatus是否包含rsModified(rsModified in RecordStatus)来判断当前记录是否被更改了。
其实这已经很简单了,两层循环就能把所有被修改的记录以及修改过的字段都找到
wxieyang 2010-09-02
  • 打赏
  • 举报
回复
ClientDataSet才有Delta,ado没有
你先用那三个变量比较的方式处理下,仙实现了功能再研究更好的办法。呵呵
bluesukeke 2010-09-02
  • 打赏
  • 举报
回复
wxieyang,有没有更好的办法。
kye_jufei,delta属性adoquery没有的啊
wxieyang 2010-09-02
  • 打赏
  • 举报
回复
ADOQuery1.Fields[0].NewValue
ADOQuery1.Fields[0].OldValue
ADOQuery1.Fields[0].CurValue

这三个值,你自己看看就知道了
kye_jufei 2010-09-02
  • 打赏
  • 举报
回复
可用adoquery的Delta屬性。。。
eg:
ClientDataSet1.Delta...


PS:POST前是準確的。。。

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧