关于用ADOCONNECT后数据即时更新的问题。(50分)

  • 主题发起人 主题发起人 e518
  • 开始时间 开始时间
E

e518

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中用ADOCONNECT连接数据库后,可支持缓存更新,这个好处是大家都知道的,但
用了这个后,GRID中的数据不会即时更新,非要close,open或requery一次不可,但这样
做后,原来的记录位置就变回第一条了,所以,想请教各位大虾,在ADOCONNECT或
ADOQUERY中可有什么属性设置,会支持即时更新的。
 
热切关注。
 
用Refresh方法,试试。
 
refresh也试了,根本就不更新GRID,我现在想是不是query的同步异步问题,但这个我搞不懂。

欢迎继续发言。分也可再加。
 
用Requery 试一下
 
我使用的没有问题,用APPEND然后给字段赋值再POST,就可以在GRID中立即看到了.
使用的是PARADOX库+mdac2.7
 
to windbell:用APPEND POST当然可以,但这个都没有缓存更新,如果你有三个有关联的表
你post到第三个表才出错,而此时前两个又不能回复到post前的状态,那你的数据就不一
致了。
我已很久不用post了,我现在对数据的所有操作,都用sql,这个才好。

to lb_icesea79:我一开始就说已用了requery,用这个这后,记录号就不是原来的了,而是
数据库中的第一条。


 
可以明確的告訴你,沒有
因為你是用了sql語句來操作數據,所以你所做的更新等於是其他人在其他機器上
做的更新,你不做requery是不能反映到當前recordset的
 
to shiny:
那做requery后,如何又定位到原来的纪录呢?
 
->那做requery后,如何又定位到原来的纪录呢?
可以使用BOOKMARK存储当前位置,以后再恢复
 
不知requry及bookmark的速度如何?若一个表有10万条记录,每增、改一次,都要做,
 
对bookmark速度与你的记录数关系不大,对于requry就要看你的优化功夫了.
 
没错,就像windbell所说的那样,也可以用variant数组,在关闭之前保存,打开后定位就行啦
 
首先大力感谢以上多位大人!

to windbell:
>>>> 对于requry就要看你的优化功夫了
请问如何优化??我看它有个参数,但不知有什么用?没办法,E文不好。
 
to shiny:
>>>可以明確的告訴你,沒有
>>>因為你是用了sql語句來操作數據,所以你所做的更新等於是其他人在其他機器上
>>>做的更新,你不做requery是不能反映到當前recordset的

对呀,就是这样,就象是多用户一样,我现在要求的就是某一用户修改了记录,就即
可反映到其它用户的界面上,我记得好象是"同步"或"异步"的事,但我不知如何做?

(请大侠们继续发言,谢谢。)


 
自己试过,用这种方法刷新时,对当前记录号的控制://侯雪冬
var
a:integer;
With AdoTable1 do
begin
a:=recNo;
DisableControls;
if Active then close;
Open;
EnableControls;
recNo:=a;
end;
 
你使用动态corsor能实现而不用重新查询,这种方式最大的问题就是增加了服务器的负载。
 
to senders:
动态corsor如何实现呢??
 
后退
顶部