*************************************************************************
AdOpenForwardOnly    仅向前游标,默认值。
        除了只能在记录中向前滚动外,与静态游标相同。
        当只需要在记录集中单向移动时,使用它可提高性能。 
AdOpenKeyset 键集游标。
        尽管从您的记录集不能访问其他用户删除的记录,
        但除无法查看其他用户添加的记录外,键集游标与动态游标相似。
        仍然可以看见其他用户更改的数据。 
AdOpenDynamic 动态游标。
        可以看见其他用户所作的添加、更改和删除。
        允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。 
AdOpenStatic 静态游标。
        可以用来查找数据或生成报告的记录集合的静态副本。
        另外,对其他用户所作的添加、更改或删除不可见。 
****************************************************************************以上为ADO中对“游标”类型的详细解释。可是不知是原作者写的太术语化,还是译者搞的太诲涩,当然,也可能是我的问题。
反正,我看好几遍就是看不太懂,它说的是什么意思。------------------------------------------------除了第一个,仅向前游标,按照我的理解就是,只能朝着一个方向移动游标。
举个例子来说:也就是,只能调用 rs.MoveNext 方法。 后面这几种游标,我都还不太明白。大侠们能不能给予解释一下?例如,上面多次提到:“其他用户”  是怎么回事儿? 一个Recordset对像,返回N行数据。
莫非这N行数据里还分别标识了哪些是自已的数据,哪些是其他用户的数据??
总之,如果对游标类型有着深刻理解的大侠们,请你用自已的话,用让咱能听明白的大白话给咱讲讲
---------------------------------------------------

解决方案 »

  1.   

    其他用户是指其他程序或者你程序中的Connection和其他的Recordset对数据的更改
    比如你用rs1使用AdOpenStatic打开表a,然后用rs2打开表a并删除其中第1条数据,此时在rs1中第一条数据仍然可以访问,应为AdOpenStatic的定义是“对其他用户所作的添加、更改或删除不可见”另外当Recordset的CursorLocation是adUseClient时,对CursorType的任何设置都等同于adOpenStatic
    只有当CursorLocation为adUseServer时其他3项才可用
      

  2.   

    to:  bdhh(Silent) ( ) 
    如何正确合理的使用上面的参数呢!!
    提高数据库的访问速度!!
      

  3.   

    如果是单用户环境,用哪个都无所谓
    多用户环境需要考虑并发行,而且修改数据时要注意冲突检测一般遍历纪录集用AdOpenForwardOnly,使用内存最少
    如果要多次操作纪录集用AdOpenStatic,他一次提取所有数据到内存中,数据量对性能影响很大
    如果对数据变化比较敏感就使用AdOpenKeyset和AdOpenDynamicAdOpenStatic使用adUseClient,提取数据后就不再需要数据库连接了
    AdOpenForwardOnly、AdOpenKeyset、AdOpenDynamic使用adUseServer,整个操作过程中都必须保持数据库连接打开,影响并发性具体问题具体分析:)