十万火急:无法更新定位行????? 我用一个TIMER1来对表A的合乎条件的数据进行修改,在另一窗口B打开表A,并此窗口中进行相应添加修改删除操作,此时TIMER1时间片刻到了,将表A某些数据改变,而在窗口B中将没有得到更新,此时再按保存时,会出现“无法更新定位行。”,应如何解决?十万火急,拜托各位。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用timmer来更新数据好像还是第一次见 我觉得是你的update sql不对吧,你的update语句是不是用组件自动生成的,在where子句中带有每个字段的那种。如果是,你可以修改它,只保留唯一索引的字段。当然,如果Timer1连唯一索引的这个字段都要改变的话,就没办法了。 timer1中改变A表数据后需要立即刷新B窗口中对应的数据集,如adoquery。这样就应该不会包那个错误了。例如你用一个adoquery打开一个表进行操作,同时用一个adocommand改变了这个表的某条数据,你如果再在adoquery上对该条数据进行修改后保存,程序会认为adoquery缓存里的数据与表中的数据不一致,从而导致这个错误的产生。 在FORM2中也用一个TIMER1,刷新一下看看 A表在timer1的驱动下更新数据时,建议刷新B窗体的数据 HEHE如果非要这么干的话定义一个约定标志 A如果来写了数据库就把这个标志置为TRUE如果在B更新或移动记录之前判断一下这个标志如果为真就刷新数据然后把这个标志置F 我试过在编辑修改删除时,首先将REFRESH,能够解决问题,但不知道对速度的影响有多大。 我试过在编辑修改删除时,首先将数据集REFRESH,虽然能够解决问题,但是十分之慢,形如死机,各位这个问题应该如何处理呢?或者有何高见?? 这样是有问题的,先给你把问题指出,自己改吧在保存数据时,数据控件会把更新前缓存中的数据(没有修改时)与数据库中的数据进行比较,如果不一致就会出现你的问题如果要用timer我强烈建议你用事务机制。可能说的不是很清楚。请各位多指正。^_^ 你可以在A表更新时,同时B表也就Refresh一次。然后在B表也就可以随你干什么。 [求助]FastReport问题,直接打印报错 有关dcu的问题 cxgrid显示主从表数据的问题 如何获得密码框里记住的密码,让*还原成明码? 在Dll中输出了函数,用来运行SQL语句,结果调用第一次成功,第二次开始就失败了 组件中怎么取得包含该组件的父窗体的句柄? 关于命令行参数的问题 请教一个初级问题 我想实现从本地文件服务器上拷贝到本机,该用什么控件才好? 如何使用create.... 关于数据备份的问题----本人很急!!!!! baffling(迷茫困惑中) 快来接分!谢谢你给我解决了大问题.
这样就应该不会包那个错误了。例如你用一个adoquery打开一个表进行操作,同时用一个adocommand改变了这个表的某条数据,
你如果再在adoquery上对该条数据进行修改后保存,程序会认为adoquery缓存里的数据与表中的数据不一致,从而导致这个错误的产生。
如果非要这么干的话
定义一个约定标志
A如果来写了数据库
就把这个标志置为TRUE
如果在B更新或移动记录之前
判断一下这个标志
如果为真就刷新数据
然后把这个标志置F