急!急!急!一个关于clientDataset主从表更新的老问题

DelphiRabbit 2003-10-30 11:30:41
我在服务器端用的是ADO,客户端clientDataset。但是我对从表进行增加,删除时,在当前form是起作用了,事实上也写入了后台服务器。但从form中出来再进去时,发现还是原来的数据(例如,我删除了从表的一条记录,服务器上确实没有了,当时form中也没有这条纪录。但我出了form再进去,发现那条纪录还在。好像clientDataset的缓存没有变)。除非我再运行一次当前项目,才显示正确的数据。
查了所有的帖子和faq,我在applyupdate后用了refresh,但没有用。我还试了组合,主表refresh,主表表打开关闭;主表refresh,从表打开关闭。要不不起作用,要不删一条纪录所有纪录都看不见了(事实上其他纪录还有,下次运行时才出来)。我也设置了服务器端的ADO的indexname,客户端clientDataset的indexname为表的主键,但还是不起作用。各位大侠,我的时间紧迫,请指点一下,小弟感激不尽!最好是实践经验证明行之有效的方法。我用的是dephi5
...全文
71 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkc727 2003-12-11
  • 打赏
  • 举报
回复
用clientdataset1.applyupdates(1)就可以啦!
linnil00 2003-12-10
  • 打赏
  • 举报
回复
clientdataset1.requery;
数据要重新装载才行
2312 2003-11-28
  • 打赏
  • 举报
回复
假如这样不行的话:
ClientDataSet1.Close;
ClientDataSet1.Open;
else
发消息到服务器进行刷新,记住还得:
ClientDataSet1.Close;
ClientDataSet1.Open;
zxtyhy 2003-11-28
  • 打赏
  • 举报
回复
升级ADO
_GodFather 2003-10-30
  • 打赏
  • 举报
回复
需要重新刷新一下Query();
hotdog911 2003-10-30
  • 打赏
  • 举报
回复
clientdataset.applyupdates(0);
不知道是否正确,请指教
DelphiRabbit 2003-10-30
  • 打赏
  • 举报
回复
我早试过,无论打开关闭主表,还是从表的ClientDataSet,都不行。至于刷新Query(),难道指刷新服务器的AdoDataSet?按李维的书《分布式多层应用系统篇》第七章24页,客户端更新后,服务器的dataset应该会主动取回新的数据,即服务器端的dataset中的数据总是最新的(但应该不会又传到客户端一次)。我的问题应该出在clientDataset的缓存中
qiume 2003-10-30
  • 打赏
  • 举报
回复
ClientDataSet1.Close;
ClientDataSet1.Open;

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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