ClientDataSet保存的时候出现错误!!!各位朋友请帮助?

hbj88 2007-04-18 08:10:13
执行ClientDataSet1.Append 添加完数据后,保存的时候就出现“Record not found or changed by another user”的错误,应当如何解决?

保存的代码为: ClientDataSet1.ApplyUpdates(-1);
...全文
221 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Heyongfeng 2007-04-18
  • 打赏
  • 举报
回复
ClientDataSet应用更新时,服务端控件先要检索该记录:select * from 表名 where 字段1='更新前内容' and 字段2='更新前内容' and 字段3='更新前内容' and …… 所有字段都作为条件。
该错误出现的情况有:
1、该记录在提交更新时被他人修改过
2、字段中有长日期类型
解决方法:
不用ClientDataSet更新,通过SQL语句更新或者设置服务端的控件的字段属性,把主键字段的ProviderFlags的pfinKey属性设为true,这样ClientDataSet更新时服务端检索记录时的条件仅包含该字段而不是所有字段
当然,这样的话如果在提交之前该记录被他人修改过(不改主键字段)的话,你仍可更新该记录,而不会有你看到的错误提示。

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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