仅仅是一句话,烦死我了!

kamiru 2005-05-13 01:50:52
这段代码中的rs.open sqlstr,cn,2,2,1这句话是干什么用的?open后面那几个参数各是指什么?麻烦懂的人详细的解释一下,小弟我刚接触这些,不懂。


<%
myself=request.servervariables("path_info")
set rs=server.createobject("adodb.recordset")
rs.cursorlocation=3
if request.querystring("pnumber")="" then
sqlstr="select id,title,pnumber,uploadtime,hits from document where pnumber=(select max(pnumber) from document) order by hits desc"
else
sqlstr="select id,title,pnumber,uploadtime,hits from document where pnumber=" & request.querystring("pnumber") & " order by hits desc"
end if
rs.open sqlstr,cn,2,2,1
rs.pagesize=20
if NOT isnumeric(request("page")) or request("page")="" or request("page")=EMPTY then
page=1
else
page=clng(request("page"))
if page<1 then page=1
if page>rs.pagecount then page=rs.pagecount
end if
%>
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kamiru 2005-05-13
  • 打赏
  • 举报
回复
常数 常数值 说明
adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)

adOpenKeyset 1 启动一个Keyset类型的游标
adOpenDynamic 2 启动一个Dynamic类型的游标
adOpenStatic 3 启动一个Static类型的游标


是指的这个么?
kamiru 2005-05-13
  • 打赏
  • 举报
回复
能不能就说说代码中间的2,2,1各是指什么?
hzw66 2005-05-13
  • 打赏
  • 举报
回复
Open 方法 (ADO Recordset)
打开游标。

语法
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
参数
Source
可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储 Recordset 的文件名或 Stream 对象。
ActiveConnection
可选。Variant,计算有效的 Connection 对象变量名,或包含 ConnectionString 参数的 String。
CursorType
可选。CursorTypeEnum 值,确定在打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。
LockType
可选。LockTypeEnum 值,确定在打开 Recordset 时提供者应使用的锁定(并发)类型。默认值为 adLockReadOnly。
Options
可选。Long 值,指示提供者计算 Source 参数的方式(如果该参数表示除 Command 对象之外的某些内容),或者指示 Recordset 应该从以前保存过的文件中恢复。可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值,这些值可以用位 AND 操作符组合。
注意 如果从包含持久 Recordset 的 Stream 中打开 Recordset,那么使用 adAsyncFetchNonBlocking 的 ExecuteOptionEnum 值将不起作用;提取操作将同步进行并发生阻塞。
adExecuteNoRecords 或 adExecuteStream 的 ExecuteOpenEnum 值不应与 Open 一起使用。
baikaishui_0825 2005-05-13
  • 打赏
  • 举报
回复
Recordset对象的Open函数参数

我们来谈谈Recordset对象的Open函数参数的意义,参数一是数据表名或者Select指令;参数二为Connection对象,我们着重分析一下参数三和参数四的意义。参数三:Recordset类型。

它含有以下四种设置值
Recordset类型的设置值 意义
AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动
AdOpenStaqtic(=3) 只读,当前数据记录可自由移动
AdOpenKeyset(=1) 可读写,当前数据记录可自由移动
AdOpenDynamic(=2) 可读写,当前数据记录可自由移动
注:AdOpenKeyset及AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),若以AdOpenDynamic模式打开数据表,则可以看到其他人新增的数据记录
参数四:锁定类型。含有以下四种设置值

锁定类型的设置值 意义
AdLockReadOnly(=1) 默认值,用来打开只读的数据记录
AdLockPessimistic(=2) 悲观锁定
AdLockOptimistic(=3) 乐观锁定
AdLockBatchOptimistic(=40 批次乐观锁定
AdLockReadOnly:故名思义,就是只对数据读取数据,而不能对数据库的记录进行有变更的数据操作。
AdLockPessimistic:它指的是当任何两个程序同时更新同一条记录的时候,只能允许唯一一个程序进行数据更新。例如:
rs("loginnum")=rs("loginnum")+1
rs.update

如果使用了这种模式的模型方式,当程序利用rs("loginnum")=数值语句开始改变数据记录的时候,数据记录就进入了记录锁定状态。

AdLockOptimistic:它指的是两个程序对同一条记录进行更新的情况几乎不可能发生,因此它只是在数据写入数据的时候暂时锁定数据记录。例如:
rs("loginnum")=rs("loginnum")+1
rs.update

也就是说只有在rs.update执行的时候才开始锁定记录,语句完成后才解锁,这样就有可能发生某一程序对数据记录的更新是不完成的。

AdLockBatchOptimistic:它在更改数据记录的过程中,暂时不将更新的结果写入数据库,直到调用updatebatch函数时才将整批更新的数据写入数据库,而且也只在在这个时候才锁定欲更新的数据记录。例如:
while not rs.eof
rs("loginnum")=rs("loginnum")+1
rs("applynum")=rs("applynum")+1
rs.movenext
rs.updatebatch
wend

注意,如果使用这种模式,更新的函数就是updatebatch而不是update了。

通过以上的介绍,当语句写成:rs.open sql,conn,1,1的时候,其真正意义就是:

rs.open sql,conn,adopenkeyset,adlockreadonly
kamiru 2005-05-13
  • 打赏
  • 举报
回复
晕了,有没有中文的啊~~~~~~~~~~~
028city 2005-05-13
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthrstopen.asp

sportdog 2005-05-13
  • 打赏
  • 举报
回复
该看书了!

28,405

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧