一个很菜鸟的问题“rs.Open sql,conn,3,2” 中的3,2 是什么意思

2024-12-28 23:36:22
推荐回答(1个)
回答1:

打开游标。

3代表Cursortype,2代表LockType

语法

recordset.Open
Source,
ActiveConnection,
CursorType,
LockType,
Options

参数

Source
可选,变体型,计算
Command
对象的变量名、SQL
语句、表名、存储过程调用或持久
Recordset
文件名。

ActiveConnection
可选。变体型,计算有效
Connection
对象变量名;或字符串,包含
ConnectionString
参数

CursorType:
-1
adOpenUnspecified
0
AdOpenForwardOnly 向前游标,同静态游标相同,但是游标只能向前移动
1
AdOpenKeyset
关键字游标,与动态游标相同,但是只能看到其它用户对数据库的更新,看不到添加和删除结果
2
AdOpenDynamic
动态游标,可以看到其它用户对数据库的添加、删除和修改等操作,允许游标向前或向后移动
3
AdOpenStatic
静态游标,它是所访问的记录集的拷贝,看不到其它用户对数据库的修改

LockType:
-1
adLockUnspecified
1
adLockReadOnly

只读,不可修改记录集
2
adLockPessimistic
保守式锁定,当编辑记录集时立即锁定数据库,禁止其它用户访问
3
adLockOptimistic
开放式锁定,只有使用Update方法时才锁定数据库
4
adLockBatchOptimistic 开放式批更新,用于批更新模式,只有使用UpdateBatch方法时才锁定数据库

Options
可选,长整型值,用于指示提供者如何计算
Source
参数(如果它代表的不是
Command
对象),或从以前保存
Recordset
的文件中恢复
Recordset。可为下列常量之一(参见
CommandType
属性可获得该列表中前五个常量的详细说明)。

常量
说明
adCmdText
指示提供者应该将
Source
作为命令的文本定义来计算。
adCmdTable
指示
ADO
生成
SQL
查询以便从
Source
命名的表返回所有行。
adCmdTableDirect
指示提供者更改从
Source
命名的表返回的所有行。
adCmdStoredProc
指示提供者应该将
Source
视为存储的过程。
adCmdUnknown
指示
Source
参数中的命令类型为未知。
adCommandFile
指示应从
Source
命名的文件中恢复持久(保存的)Recordset。
adExecuteAsync
指示应异步执行
Source。
adFetchAsync
指示在提取
CacheSize
属性中指定的初始数量后,应该异步提取所有剩余的行。

说明

使用
Recordset
对象的
Open
方法可打开代表基本表、查询结果或者以前保存的
Recordset
中记录的游标。

使用可选的
Source
参数指定使用下列内容之一的数据源:Command
对象变量、SQL
语句、存储过程、表名或完整的文件路径名。

ActiveConnection
参数对应于
ActiveConnection
属性并且指定在其中打开
Recordset
对象的连接。如果传送该参数的连接定义,则
ADO
使用指定的参数打开新连接。可以在打开
Recordset
之后更改该属性的值以便将更新发送到其他提供者。或者可以将该属性设置为
Nothing(在
Microsoft
Visual
Basic
中)以便将
Recordset
与所有提供者断开。

对于直接对应于
Recordset
对象属性的参数(Source、CursorType

LockType),参数和属性的关系如下:


Recordset
对象打开之前属性是读/写。

除非在执行
Open
方法时传送相应的参数,否则将使用属性设置。如果传送参数,则它将覆盖相应的属性设置,并且用参数值更新属性设置。

在打开
Recordset
对象后,这些属性将变为只读。
注意
对于其
Source
属性设置为有效
Command
对象的
Recordset,即使
Recordset
对象没有打开,ActiveConnection
属性也是只读的。

如果在
Source
参数中传送
Command
对象并且同时传递
ActiveConnection
参数,那么将产生错误。Command
对象的
ActiveConnection
属性必须已设置为有效的
Connection
对象或者连接字符串。

如果在
Source
参数中传送的不是
Command
对象,那么可以使用
Options
参数优化
Source
参数的计算。如果没有定义
Options
则性能将会降低,原因是
ADO
必须调用提供者以确定参数为
SQL
语句、存储过程还是表名。如果确知所用的
Source
类型,则可以设置
Options
参数以指示
ADO
直接跳转到相关的代码。如果
Options
参数与
Source
类型不匹配,将产生错误。

如果不存在与记录集关联的连接,Options
参数的默认值将为
adCommandFile。这是持久
Recordset
对象的典型情况。

如果数据源没有返回记录,那么提供者将
BOF

EOF
属性同时设置为
True,并且不定义当前记录位置。但如果游标类型允许,仍然可以将新数据添加到该空
Recordset
对象。

在结束对打开的
Recordset
对象的操作后,可使用
Close
方法释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并在以后使用
Open
方法再次将其打开。要将对象从内存中完全删除,可将对象变量设置为
Nothing。

在设置
ActiveConnection
属性之前调用不带操作数的
Open,可通过将字段追加到
Record