◆ [2025-6-1 星期日 13:19] ◆ | ◆ 收藏本站 ◆ | ◆ 设为首页 ◆ |
![]() |
|
---|
首 页 | 论坛交流 | 游戏频道 | 无忧脚本 | 旧版论坛 | 云服务器 | 聊 天 室 | 自助链接 | 来访记录 | 访客留言 | 搜索提供 |
位置:風雲工作室 - 论坛交流 - 技术专栏 - 后台开发 - 关于rs.open sql,conn,1,3后面的1和3什么时候用呢? | 返回 |
主题:关于rs.open sql,conn,1,3后面的1和3什么时候用呢? | |||||||
|
(1楼)关于rs.open sql,conn,1,3后面的1和3什么时候用呢?
recordset中的open完全的语法是
recordset.Open Source,ActiveConnection,CursorType,LockType,Options,Source 相当于rs.Open sql,conn,1,1 其中 CursorType是 adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only) adOpenKeyset 1 启动一个Keyset类型的游标 adOpenDynamic 2 启动一个Dynamic类型的游标 adOpenStatic 3 启动一个Static类型的游标 LockType是 adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性 adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作 adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操 |
||||||
|
|||||||
|
(2楼)
附带一个小资料:
----------------------------------- 常数 常数值 说明 ----------------------------------- adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。 adOpenKeyset 1 启动一个Keyset类型的游标。 adOpenDynamic 2 启动一个Dynamic类型的游标。 adOpenStatic 3 启动一个Static类型的游标。 ----------------------------------- 以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 --------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic --------------------------------------------- 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 Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: ----------------------------------- 常数 常数值 说明 ----------------------------------- adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。 =====定义数据库连接的一些常量 <% Const adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark Const adOpenKeyset = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark Const adOpenDynamic = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。 Const adOpenStatic = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动 Const adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改 Const adLockPessimistic = 2 '当编辑时立即锁定记录,最安全的方式 Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等 Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的 Const adCmdText = &H0001 Const adCmdTable = &H0002 %> |
||||||
|
|||||||
|
(3楼)
CursorLocation : 1
CursorType = 0;不分页 CursorType = 1;不分页 // Sql Server、Oracle 变成 3 CursorType = 2;不分页,变成 3 // Sql Server 不分页 CursorType = 3;不分页 CursorLocation : 2 CursorType = 0;不分页 CursorType = 1;可分页 // Sql Server、Oracle 变成 3 CursorType = 2;不分页,变成 3 // Sql Server 不分页 CursorType = 3;可分页 CursorLocation : 3 CursorType = 0;可分页,变成 3 CursorType = 1;可分页,变成 3 CursorType = 2;可分页,变成 3 CursorType = 3;可分页 |
||||||
|
|||||||
|
(4楼)
CursorType(游标类型)
0(AdOpenForwardOnly,仅向前游标,默认值): 记录集打开后,看不到其他用户对数据进行的增删改等操作。 直接在数据库中操作数据,所以读取速度最快,但是不支持分页。 当CursorLocation为3时,会自动将CursorType设置成3。 1(AdOpenKeyset,键集游标): 记录集打开后,能看到用户的删改操作,但看不到其他用户添加的记录。 CursorLocation为1时,不能分页,CursorLocation为2时,一般数据库都可分页。 当CursorLication为1或2时,遇到大部分服务型数据库,会自动将CursorType设置成3。 2(AdOpenDynamic,动态游标 ): 记录集打开后,能看到其他用户对记录的增删改操作。 不支持分页操作。 当CursorLocation为1或2时,遇到Sql Server,会自动将CursorType设置成3。 3(AdOpenStatic,静态游标 ): 记录集打开后,看不到其他用户的增删改操作。 CursorLocation为1时,不支持分页,CursorLocation为2时,一般数据库都支持分页。 ================================================= CursorLocation(游标位置) 1(adUseNone) 没有使用游标服务。(该常量已过时并且只为了向后兼容才出现)。 不支持分页 2(adUseClient) 当CursorType为1或3时才支持分页。 3(adUseServer,默认值) 无论CursorType设置为多少,任何数据库均可实现分页。 由于分页是客户端处理,而不是数据库端提供的支持,所以数据读取速度是最慢的。 ================================================ LockType(编辑数据时的锁定类型) 1(adLockReadOnly,缺省值) 以只读方式启动,无法运行AddNew、Update及Delete等方法。 2(adLockPrssimistic) 当遇到增删改操作时,立即锁定,其他用户不能进行增删改操作。 3(adLockOptimistic) 只有在Update的时候才将记录集锁定。 4(adLockBatchOptimistic) 开放式批更新。用于与立即更新模式相反的批更新模式。 |
||||||
|