你不设置的话,ADO应该默认的就是"Recordset.CursorLocation = adUseServer",直接一样的操作

解决方案 »

  1.   

    不是吧默认应该是adUseClient 吧
      

  2.   

    后台是sql server,我的程序是用绑定的,错误也不是所有保存操作都会出错MainRec.UpdateBatch adAffectCurrent时出错Err.Description:客户事件句柄调用了一个提供者中的非重入方法。
      

  3.   

    楼上我需要用adUseServer,不是asUseClient
      

  4.   

    还有另外一个错误:
    我在addnew前判断了一下RecordSet的EditMode,结果出错
    Err.Description:BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录
    可我数据库里有很多记录啊而且用adUseServer,查出的RecordCount = -1,所以怎么样都出错
      

  5.   

    用asUseClient应该就不会出错了吧!
      

  6.   

    可是我真的有很多数据,用adUseServer速度真慢的呀
      

  7.   

    错了错了,我是说以前用adUseClient太慢了,所以才想用adUseServer
      

  8.   

    如果游标位置在服务器端,则好象不支持UpdateBatch
    选CursorType=adOpenDynamic(不支持静态)
    选LockType=adLockOptimistic(不支持批处理)
      

  9.   

    如果游标位置在服务器端,CursorType就不支持静态(自己看看书,先把概念搞清楚,不然遇到问题就麻烦了)
      

  10.   

    一般情况下最好不用服务器端游标。
    以前用adUseClient太慢?请问是在哪些操作时慢?
    用adUseClient有很多优势,特别是查询,速度快(MoveNext,MoveLast等,因为缓存是在本地,所以速度比在服务器端快),另外支持批处理等。所以建议都用adUseClient。
    如果数据量大,在打开一个结果集并把它绑定到控件上,可能是要费点时间(实验过打开30万条记录需要5秒)。这是可以采用异步打开的方法,显示速度奇快(实验过用异步打开30万条记录,200豪秒显示成功,后面的记录在后台加载,用户不会察觉。关于异步操作Recordset,MSDN上有介绍)
      

  11.   

    不要使用adAffectCurrent试试,或使用Update()