欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

rs.open sql,conn,1,1与rs.open sql,conn,1.3还有rs.open sql,conn,3,2区别

程序员文章站 2022-05-03 12:46:56
经常开发asp但对于细致的说法,真实不太清楚,这里简单的介绍下。一般情况下读取数据都是用rs.open sql,conn,1,1修改数据:rs.open sql,conn,...
经常开发asp但对于细致的说法,真实不太清楚,这里简单的介绍下。
一般情况下
读取数据都是用rs.open sql,conn,1,1
修改数据:rs.open sql,conn,1,3
删除数据:直接要conn.execute("delete * from new where id=1")这样的。

rs.open语法如下: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 当编辑时记录不会被锁定,而更改、插入和删
rs.open sql,conn,3,2
这两个是游标,具体的作用是:
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 代表允许更新,一般用于插入,更新和删除操作。