Midas三层,巢状数据库的主从表,如果刷新从表的记录呢?(50分)

  • 主题发起人 主题发起人 WiseAnt
  • 开始时间 开始时间
W

WiseAnt

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:cdsSales为主表,cdsSaleItems为从表
  我开了两个客户端,打开同一笔订单,一个客户端同时修改主表和从表的记录并成功提交,
但另一个客户端怎么样刷新也得不到最新的从表数据记录,主表倒是可以刷新的。
我试了cdsSales.RefreshRecord,cdsSaleItems.Refresh,cdsSales.FetchDetails都不行。
除非Close再Open,但这样做肯定是不行的:(
 
Close再Open,但这样做肯定是不行的:( ,why?
 
  如果有一千笔订单,我现在要刷新某一张订单的明细,难道也要将这个ClientDataSet.Close;
然后再ClientDataSet.Open;甚至还要Locate吗?
不要告诉我说每次显示给用户一张订单!要是那样的话,我还到这里来提问干嘛???
 
sunrainwang:
  你同意什么?灌水来了吧?!^_^
 
刷新数据本来就是从后台将所有的数据重新取来,也就是close-open的效果!如果能够直接
刷新变动的数据到是节约了不少时间!!建议在用SQL语句方面想想办法,我只能提供这些建议了.
 
考虑到分布式计算处理速度问题,在单据的录入界面,我们是每次只取出一张单据进行处
理的。不主张每次取出大量单据进行处理——除非做报表等。
要想刷新细表,好像只能Close、再Open主表。
 
refresh=close and open
:)
 
接楼上补充一点,
refresh = close + close + dataset状态不变。
 
我也遇到过这种情况!!
那是因为默认的事务没有提交!
只要使用事务的COMMIT一定行的!
 
我也遇到过这种情况,
但是我发现把中间层的ADOTable改为ADODataset就可以了。
 
建议用游标吧.
 
to: 41426277
用游标如何实现?
 
如果你用ado就可以了.
 
to CyazyIdea:
  没有你说的情况。
to 薄荷, zhj09:
  我用的就是AdoDataSet!
我想这个问题应该比较简单吧,但为何没有一个人能给出正确的做法呢?还是没有办法?
 
我也遇到过这种情况!!
 
测试测试
test for test
呵呵
 
用事务吧
 
老大,你的网络有多快,一次读那么多的纪录,少读几条,open
 

Similar threads

回复
0
查看
863
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部