我看经常用到
rs.open sql,conn,1,3
这句话,您明白他的意思吗?
下面我们来详细了解下open方法?
open方法的格式是:
rs.open [source],[activeconnection],[cursortype],[locktype],[options]
rs.open sql,conn,1,3
参数含义:
source----------------command对象名或sql语句或数据表名(也就是上面的的QL)
activeconnection------connection对象名或包含数据库连接的字符串名(也就是上面的conn)
cursortype------------recordset对象的指针类型(也就是上面的1)
locktype--------------recordset对象的使用类型(也就是上面的3)
options---------------source类型(上面省略了没有些)
到这里有点感觉了吧!别忙我面将继续下面的.对1,3,和省略的数字进行详细讲解
cursortype参数值(也就是上面的1)
adOpenForwardOnly(0)---------------向前指针,只能利用movenext或getrows向前移动数据
adOpenKeyset(1)---------------键盘指针,可以向前或向后移动,客户的修改(除了增加数据)其他用户可以立即显示。
adOpenDynamic(2)---------------动态指针,可以向前或向后移动,客户所有的修改都可以立即在其他客户端显示。
adOpenStatic(3)---------------静态指针,可以向前或向后移动,修改不会显示在其他客户端。
以上几个类型(0,1,2,3)将直接影响到Recordset对象所有的属性和方法,以下图说明他们之间的区别
Recordset属性 | adOpenForwardOnly (0) | adOpenKeyset(1) | adOpenDynamic(2) | adOpenStatic(3) |
AbsolutePage | 不支持 | 不支持 | 可读写 | 可读写 |
AbsolutePosition | 不支持 | 不支持 | 可读写 | 可读写 |
ActiveConnection | 可读写 | 可读写 | 可读写 | 可读写 |
BOF | 只读 | 只读 | 只读 | 只读 |
Bookmark | 不支持 | 不支持 | 可读写 | 可读写 |
CacheSize | 可读写 | 可读写 | 可读写 | 可读写 |
CursorLocation | 可读写 | 可读写 | 可读写 | 可读写 |
CursorType | 可读写 | 可读写 | 可读写 | 可读写 |
EditMode | 只读 | 只读 | 只读 | 只读 |
EOF | 只读 | 只读 | 只读 | 只读 |
Filter | 可读写 | 可读写 | 可读写 | 可读写 |
LockType | 可读写 | 可读写 | 可读写 | 可读写 |
MarshalOptions | 可读写 | 可读写 | 可读写 | 可读写 |
MaxRecords | 可读写 | 可读写 | 可读写 | 可读写 |
PageCount | 不支持 | 不支持 | 只读 | 只读 |
PageSize | 可读写 | 可读写 | 可读写 | 可读写 |
RecordCount | 不支持 | 不支持 | 只读 | 只读 |
Source | 可读写 | 可读写 | 可读写 | 可读写 |
State | 只读 | 只读 | 只读 | 只读 |
Status | 只读 | 只读 | 只读 | 只读 |
AddNew | 支持 | 支持 | 支持 | 支持 |
CancelBatch | 支持 | 支持 | 支持 | 支持 |
CancelUpdate | 支持 | 支持 | 支持 | 支持 |
Clone | 不支持 | 不支持 | 不支持 | 不支持 |
Close | 支持 | 支持 | 支持 | 支持 |
Delete | 支持 | 支持 | 支持 | 支持 |
GetRows | 支持 | 支持 | 支持 | 支持 |
Move | 不支持 | 支持 | 支持 | 支持 |
MoveFirst | 支持 | 支持 | 支持 | 支持 |
MoveLast | 不支持 | 支持 | 支持 | 支持 |
MoveNext | 支持 | 支持 | 支持 | 支持 |
MovePrevious | 不支持 | 支持 | 支持 | 支持 |
NextRecordset | 支持 | 支持 | 支持 | 支持 |
Open | 支持 | 支持 | 支持 | 支持 |
Requery | 支持 | 支持 | 支持 | 支持 |
Resync | 不支持 | 不支持 | 支持 | 不支持 |
Supports | 支持 | 支持 | 支持 | 支持 |
Update | 支持 | 支持 | 支持 | 支持 |
UpdateBatch | 支持 | 支持 | 支持 | 支持 |
--------------------------------
注意:其中NextRecordset方法并不适用于Microsoft Access数据库。
locktype参数值(也就是上面的3)
adLockReadOnly(1)---------------缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic(2)---------------当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic(3)---------------当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、
改的xx作。
adLockBatchOptimistic(4)---------------当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的xx作。
options参数值
-1--------------参数无法确定,默认
1---------------命令类型
2---------------表名称
3---------------存储过程名
---------------------------------------------------------
个人认为直接查询的时候使用rs.open sql,conn,1,1的组合
修改或者添加的时候使用rs.open sql,conn,2,3的组合