杭州方特欢乐世界:看的懂asp代码的进来

来源:百度文库 编辑:高校问答 时间:2024/05/08 08:49:42
<%
dim rs
dim sql
set rs = server.createobject("adodb.recordset")
sql = "select*from bbs where isnull(bid) or bid=0 order by id desc"
count=conn.execute("select count(id) from bbs where isnull(bid) or bid=0")(0)
on error resume next
pagesetup=5
rs.Open sql,conn,1
If Count/pagesetup > (Count\pagesetup) then
TotalPage=(Count\pagesetup)+1
else TotalPage=(Count\pagesetup)
End If
PageCount= 0
RS.MoveFirst
if Request.QueryString("ToPage")<>"" then PageCount = cint(Request.QueryString("ToPage"))
if PageCount <=0 then PageCount = 1
if PageCount > TotalPage then PageCount = TotalPage
RS.Move (PageCount-1) * pagesetup
i=1
do while not rs.eof
%>
哪位高手可以帮我解释一下这段代码 我这里这个是开数据库的 但是不是看的很懂 还有这段代码一定要这样写吗?可以用别的方法写吗?

dim rs
dim sql
set rs = server.createobject("adodb.recordset") '实例化ADO组件中的记录集对象
sql = "select*from bbs where isnull(bid) or bid=0 order by id desc" 'SQL结构化查询语句,从表BBS中查找所有bid为空或为0的条目
count=conn.execute("select count(id) from bbs where isnull(bid) or bid=0")(0) '使用连接对象实例执行语句,返回傎为查询结果集条目数量,连接对象可能是在别的头文件中申明的
on error resume next '出现错误忽略,继续执行下一条
pagesetup=5
rs.Open sql,conn,1 '打开打开仅向前类型游标记录集对象
If Count/pagesetup > (Count\pagesetup) then '按pagesetup(每页显示数量)计算可以有多少页
TotalPage=(Count\pagesetup)+1
else TotalPage=(Count\pagesetup)
End If
PageCount= 0
RS.MoveFirst '记录集游标指向第一行
if Request.QueryString("ToPage")<>"" then PageCount = cint(Request.QueryString("ToPage")) '如果用户输入的页号不为空,把输入字符转换为整型
if PageCount <=0 then PageCount = 1 '如果用户输入页号小于0就从首页开始
if PageCount > TotalPage then PageCount = TotalPage '如果超过最大页号从指向尾页
RS.Move (PageCount-1) * pagesetup '移动记录集游标到指定的行
i=1
do while not rs.eof '如果游标没有指到记录集底部就继续循环

参考:
recordset.Open Source, ActiveConnection, CursorType, LockType, Options

CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。

常量 说明
AdOpenForwardOnly (默认值)打开仅向前类型游标。
AdOpenKeyset 打开键集类型游标。
AdOpenDynamic 打开动态类型游标。
AdOpenStatic 打开静态类型游标。

其它详细内容参考 Microsoft® ActiveX® Data Objects (ADO)

dim rs
dim sql
set rs = server.createobject("adodb.recordset")
sql = "select*from bbs where isnull(bid) or bid=0 order by id desc"
count=conn.execute("select count(id) from bbs where isnull(bid) or bid=0")(0) //前面几句是建立数据库连接的,建立 rs记录集,构造执行SQL语句,查询合条件的ID数目
on error resume next //如果执行错误继续执行一面.
pagesetup=5 //
rs.Open sql,conn,1 //这一句是执行上面建立的SQL语句.
If Count/pagesetup > (Count\pagesetup) then
TotalPage=(Count\pagesetup)+1
else TotalPage=(Count\pagesetup) //这几句是页数的设置.
End If
PageCount= 0
RS.MoveFirst //这一句是返回记录集到首部.
if Request.QueryString("ToPage")<>"" then PageCount = cint(Request.QueryString("ToPage")) //如果接收的ToPage不为空则把它传给页数.
if PageCount <=0 then PageCount = 1
if PageCount > TotalPage then PageCount = TotalPage
RS.Move (PageCount-1) * pagesetup //初始化页数
i=1
do while not rs.eof //执行循环直到rs记录集的结尾
%>
就这样,自己要学着看.