VB ADODB中的RecordSet.Open打开记录的两个参数adOpenKeyset、adLockBatchOptimistic的详细说明:
这两个参数当时弄明白,过后又忘记了,做了笔记,但为了方便,还是在Blog中也做上这个笔记。
缺省值1 adLockReadOnly RecordSet对象以只读方式启动,无法运行增、删、改等操作
2 adLockPessimistic 当数据源正在更新时,系统会锁定其他用户的动作,以保数据一致性。
3 adLockOptimistic 当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作。
4 adLockBatchOptimistic 当数据源正在更新时,其他用户必须将CursorLocation改为adUdeClientBatch才能对数据进行增、删、改的操作。
默认值0 adOpenForwardOnly 使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在 Recordset 中进行一个传递时,用它可提高性能。
1 adOpenKeyset 使用键集游标。尽管从您的 Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所做的数据更改依然可见。
2 adOpenDynamic 使用动态游标。其他用户所做的添加、更改或删除均可见,而且允许 Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。
3 adOpenStatic 使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所做的添加、更改或删除不可见。
-1 adOpenUnspecified 不指定游标类型
个人总结:
如果是查找功能一般锁定方式为1
例rs.Open sql, conn, 1, 1 ‘==免去增删改
如果是其他功能一般为2
例rs.Open sql, conn, 1, 2 ‘==当然这里游标方式1可以根据特定情况更改