明凯博客

关注网站技术,一个特立独行的程序员

rs.open sql,conn,1,1和rs.open sql,conn,1.3与rs.open sql,conn,3,2区别详解

经常开发asp但对于sql链接的细致区别,估计没多少人清楚,这里简单的介绍下。
一般情况下:

读取数据都是用rs.open sql,conn,1,1
修改数据:rs.open sql,conn,1,3
删除数据:直接要conn.execute(“delete * from new where id=1”)这样的。

Rs.Open语法如下:

1
rs.Open Source,ActiveConnection,CursorType,LockType

Source为sql语句,ActiveConnection为数据库连接,CursorType是游标,LockType是数据锁定类型。

CursorType

常量,说明
adOpenForwardOnly(值为0),(默认值)打开仅向前类型游标。
adOpenKeyset(值为1),打开键集类型游标。
adOpenDynamic(值为2),打开动态类型游标。
adOpenStatic(值为3),打开静态类型游标。

LockType

常量 ,说明
adLockReadOnly (值为1) ,(默认值)只读 — 不能改变数据。
adLockPessimistic(值为2) ,保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录来完成。
adLockOptimistic(值为3) ,开放式锁定(逐个) — 提供者使用开放式锁定,只在调用 Update 方法时才锁定记录。
adLockBatchOptimistic(值为4) ,开放式批更新 — 用于批更新模式(与立即更新模式相对)。

CursorType
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

LockType
LockType为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删除

1
rs.open sql,conn,3,2

这两个是游标,具体的作用是:

1
RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动
ADOPENKEYSET(=1)
只读,当前数据记录可自由移动
ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动
ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录

B:
ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录
ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。
ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。
ADLOCKBATCHOPTIMISTIC(=4)

批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。
当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

总结一下:
sql,conn,1,1 代表不允许更新,一般用于查询操作。
sql,conn,1,3 代表允许更新,一般用于插入,更新和删除操作。

, , , ,

相关文章

1 条评论 “rs.open sql,conn,1,1和rs.open sql,conn,1.3与rs.open sql,conn,3,2区别详解

发表评论

电子邮件地址不会被公开。 必填项已用*标注