这个问题还真不是三言两语能说明白的,我给你举个例子吧
假设table1有100条记录,在客户端执行:
select * from table1
而客户段的cachesize为10那么对于不同的游标会有不同表现
Server-side Cursor:
将1000条数据存于ado缓存或数据源缓存中,只将10条发送给客户端,当客户端要使用第11笔缓存时,由于客户端没有第11笔,客户端的游标会向服务器端的ado要求传送下10笔Client-side Cursor:
将1000条数据全部传送给客户端ado缓存,客户端的游标向应用程序提供数据由此看出
服务器端游标要球保持“持续的”连接,而客户端游标在取得数据后即可切断联系弄清这两个问题,你2、3问题就解决了在ado架构中,connection 主要负责连接数据源,recordset负责存取和维护从数据源取得的数据,command是recordset的一个分支

解决方案 »

  1.   

    补充一点:
    command可以返回recordset,也可以不返回recordset
    在不同的语言中有一些差别
      

  2.   

    客户端游标可不可以更改数据源,我从理论上想是不行的,但实际上却是可以的(我的实验是在一台机子上做的win2000server+sql2000+vb,不知实际在两台机器上做结果是否一样)
      

  3.   

    客户端的游标为什么不能修改数据呢?
    不论是在客户端还是在服务器端,修改时都是先修改缓存中的记录,最后执行rs.update时,才把数据的修改结果提交给数据库,所以无论是什么游标,只要不是前向只读的,有键集,就可以修改。