关于ADO的数据更新的问题?(100分)

  • 主题发起人 主题发起人 feihu-sq
  • 开始时间 开始时间
F

feihu-sq

Unregistered / Unconfirmed
GUEST, unregistred user!
我在客户端调用COM+中间层ADOQuery进行数据更新或则向表中插入数据的时候,发现一个问题,当我要更新的数据的记录数超过12000条的时候,出现错误,不能完成更新操作.请问各位大虾是否遇到过类似的问题呢?希望各位不吝赐教.谢谢.
还有就是,中间层中的ADOQuery是怎么设置才能保证执行的效率最高呢?而DataSetProvide如何设置才能保证在数据更新的时候效率最高呢?
小弟在此先感谢各位了。
 
估计超时了
怎么能在客户端更新这么多数据
改成业务逻辑在存储过程里更新吧
而且最好分批更新
 
TO:52free
请问怎么进行分批更新呢?
 
怎么没有人回答呢,我自己顶一下.
 
分批更新没做过,但是要包乘速度一定要用存储过程来做,不要放在客户端
 
ADO控件有超时的设置,不只是在更新,在查询的时候,如果执行时间太长,也会出现错误,解决方法就是把超时的时间设置的长一些,在D5中,只有ADOCommand控件有超时的属性(CommandTimeOut),因此需要将TADOQuery换成TADOCommand;,在D6,D7,所有的ADO控件都增加了这个属性,你可以将此属性的值设置的大一些
 
最好的办法还是限定更新数量,超出则分批提更新;
 
to liwens
当然你分批更新也没问题,我只是说明用它本身的属性来解决这个问题,而且我也说了,在查询的时候也可能出现这个问题,而对于复杂的查询操作,超出30秒(默认超时设置)会很平常的
 
1、可能数据量太大而超进,才出现异常。
2、为加快速度,取出一部份数据再处理。
3、三层中,可以采用分页(分批)。
4、利用后台的速度。
 
TO:kds
我也想过用存储过程来做,但是,数据在中间层做过很多的赋值操作,这写操作在后台存储过程中无法实现,所以,用存储过程好象行不通。
TO:qiyanhai
我也将ADOCommand控件有超时的属性(CommandTimeOut)设置为180,但是,一样的保存更新失败呀。
TO:liwens
问题是怎么去分批更新呢,比如有12000条数据,分批更新应该怎么去更新你,请具体点,最好能够有测试过代码。谢了。
TO:w128
请问何谓“三层中,可以采用分页(分批)。”怎么实现?
 
将李唯的分批查询改一下不就行了,每次更新1000条,循环更新。
 
我先试一试,如果大家还有什么更好的方法希望提供。
 
好象还是不行呀.还有什么好的办法吗?
 
多人接受答案了。
 
后退
顶部