分页的问题,rs.absolutepage=page 出错

skytears 2004-07-09 02:37:15
错误:变量或类型不正确,或者不在可以接受的范围之内,要不就是与其它数据冲突

<%
sub ShowOnePage(rs,page)
response.write "<center><table border=1>"
response.write "<tr bgcolor=#00ffff>"
response.write "<td>编号</td>"
for i=0 to rs.fields.count-1
response.write "<td>" & rs.fields(i).name & "</td>"
next
response.write "</tr>"

rs.AbsolutePage=page
for ipage=1 to rs.pagesize
response.write "<tr>"
RecNo=(page-1)*rs.PageSize+ipage
response.write "<td>" & RecNo & "</td>"
for i=0 to rs.fields.Count-1
response.write "<td>" & rs.fields(i).value & "</td>"
next
response.write "</tr>"
rs.MoveNext
if rs.eof then exit for
next
response.write "</table></center>"
end sub

%>
...全文
410 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsdzmhongm 2004-08-14
  • 打赏
  • 举报
回复
分页函数


func.asp
<%
''''''''''''''''''''''
' '
'分页函数 '
' '
''''''''''''''''''''''


sub pag_mana(table_name)
sql="select * from "&table_name&"" '从指定的数据库中读取数据
set rs=server.CreateObject("adodb.recordset")
rs.cursorlocation=3
rs.open sql,conn,3,3
if rs.recordcount>0 then
rs.pagesize=2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''当前页的处理
if request.Form("gotopage")<>"" then
currentpage=cint(request.Form("goto"))
elseif request.Form("del")<>"" or request.Form("addsysuser") then
currentpage=cint(request.Form("hpage"))
else
if request.querystring("pagenum")="" then
currentpage=1
else
currentpage=cint(request.QueryString("pagenum"))
end if
end if

if currentpage<1 then
currentpage=1
end if
if currentpage>rs.pagecount then
currentpage=rs.pagecount
end if

'''''''''''''''''
rs.absolutepage=currentpage '确定当前页
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

response.Write("<table align=center>")
response.Write("<tr>")
''''''''''''''''''''''''''''''''''输出字段名作为表格的头排
for each afield in rs.fields
response.Write("<td>")
response.Write(afield.name)
response.Write("</td>")
next
''''''''''''''''''''''''''''''''''''
response.Write("</tr>")
do until rs.absolutepage<>currentpage or rs.eof
response.Write("<tr>")
for each afield in rs.fields
response.Write("<td>")
response.Write(rs(afield.name))
response.Write("</td>")
next
response.Write("<tr>")
rs.movenext
loop

response.Write("</table>")
response.Write("<center><form method=post action="&request.ServerVariables("URL")&">")
if currentpage=1 then
response.Write("首页 | 上页 | ")
else
response.Write("<a href='"&request.ServerVariables("URL")&"?pagenum="¤tpage-1&"'>首页</a> | <a href='"&request.ServerVariables("URL")&"?pagenum=1'>上页 | </a>")
end if

if currentpage=rs.pagecount then
response.Write("下页 | 末页 ")
else
response.Write("<a href='"&request.ServerVariables("URL")&"?pagenum="¤tpage+1&"'>下页</a> | <a href='"&request.ServerVariables("URL")&"?pagenum="&rs.pagecount&"'>末页</a>")
end if
response.Write("<select name=goto>")
for i=1 to rs.pagecount
response.Write("<option value="&i&">"&i&"</option>")
next
response.Write("</select>")
response.Write("<input type=submit name=gotopage value=go>")
response.Write("</form></center>")


else
response.Write("没有记录!")
end if



rs.close
set rs=nothing
end sub

%>



'使用
-------
xx.asp

<!--#include file="func.asp"-->
<%
'...连接你的数据库

pag_mana("表名")

'....关闭你的数据库
%>
gu1dai 2004-08-14
  • 打赏
  • 举报
回复
这是打开数据库的方式错误造成
注意,最好以这种方式打开数据库
<%
set conn=server.createobject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("../date.mdb")
%>
sunjiujiu 2004-07-21
  • 打赏
  • 举报
回复
你检查下你curpage=request("page")之后,curpage是什么?
另外
rs.open sql,conn,1,3改为
rs.open sql,conn,3,1

以上就应该可以了!
zhyindividual 2004-07-21
  • 打赏
  • 举报
回复
游标类型.....
对于楼主的问题,可能是打开方式的不当造成的.
我之前打开数据库使用rs.open sql,conn,1,3结果出现同样的错误.
改成rs.open sql,conn,1,1就没事了, 不过我目前还不知道为什么,希望知者能给予解惑
qddoudouqd 2004-07-21
  • 打赏
  • 举报
回复
set rst=server.createobject("ADODB.Recordset")
rst.PageSize=15
rst.CursorLocation=3 '设定为Aduseclient,默认的有可能为2:Aduseserver
rst.Open sql,Conn,1,3
--------------------------
rst.CursorLocation=3 这一句是什么意思??定义什么??
lanechng 2004-07-21
  • 打赏
  • 举报
回复
另:
rst.CursorType = 1
rst.LockType = 1
rst.CursorLocation = 3
lanechng 2004-07-21
  • 打赏
  • 举报
回复
pagesize=12
curpage=request("page")
nextpage="?page="&cint(curpage)+1
lastpage="?page="&cint(curpage)-1
if curpage="" then
curpage=1
end if
if curpage<1 then
curpage=1
end if
if rst.recordcount mod pagesize=0 then
totalpagecount=rst.recordcount/pagesize
else
totalpagecount=int(rst.recordcount/pagesize)+1
end if

if cint(curpage)>cint(totalpagecount) then
curpage=totalpagecount
end if

rst.pagesize=pagesize
rst.absolutepage=cint(curpage)

if not rst.eof then
for i=1 to pagesize
result=result&"<tr height=26><td align=center bgcolor=#ffffff>"&rst("todo_tle")&"</td></tr>"
rst.movenext
if rst.eof then exit for
next
end if
xuqli 2004-07-21
  • 打赏
  • 举报
回复
楼主的数据库是否是informix数据库,我的问题已经解决,只需要加上一句
就可以了:
set rst=server.createobject("ADODB.Recordset")
rst.PageSize=15
rst.CursorLocation=3 '设定为Aduseclient,默认的有可能为2:Aduseserver
rst.Open sql,Conn,1,3
mmcgzs 2004-07-19
  • 打赏
  • 举报
回复
写错了
应该是:
if page="" then page=1
page=cint(page)
if page>rs.pagecount then page=rs.pagecount
rs.AbsolutePage=page
mmcgzs 2004-07-19
  • 打赏
  • 举报
回复
if page="" then page=1
page=cint(page)
if page>rs.AbsolutePage then page=rs.AbsolutePage
rs.AbsolutePage=page
xuqli 2004-07-19
  • 打赏
  • 举报
回复
数据库里面查出来有结果的啊.
xuqli 2004-07-19
  • 打赏
  • 举报
回复
ADODB.Recordset 错误 '800a0bb9'
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
我也碰到这个问题啊。
set rst=server.createobject("ADODB.Recordset")
rst.PageSize=15
rst.Open sql,Conn,1,3
page=Cint(request("page"))
if page<1 then
page=1
end if
if not rst.eof then
if page>rst.PageCount then
page=rst.PageCount
end if
rst.AbsolutePage=0
end if
i=0
while not rst.eof and i<rst.Pagesize
%>
<tr>
<td class=Forumrow width="40%"><%=rst(0)%></td>
<td class=Forumrow width="20%"><%=rst(2)%></td>
<td class=Forumrow width="20%"><%=rst(1)%></td>
<td class=Forumrow width="20%"><%=rst(3)%></td>
</tr>
<%
rst.MoveNext
i=i+1
wend
%>
<tr>
<td class=forumrow align=center width=100%>
<%if page=1 then%>第一页<%else%><a href="card.asp?page=1&query=<%=request("query")%>">第一页</a><%end if%>
<%if page=1 then%>上一页<%else%><a href="card.asp?page=<%=(page-1)%>&query=<%=request("query")%>">上一页</a><%end if%>
<%if page>=rst.pagecount then%>下一页<%ELSE%><a href="card.asp?page=<%=(page+1)%>&query=<%=request("query")%>">下一页</a><%end if%>
<%if page>=rst.pagecount then%>最后页<%else%><a href="card.asp?page=<%=rst.pagecount%>&query=<%=request("query")%>">最后页</a><%end if%>
</td>
</tr>
kylinhj 2004-07-19
  • 打赏
  • 举报
回复
if IsObject(rs) then
rs.absolutepage=page
end if
woderoom 2004-07-19
  • 打赏
  • 举报
回复
服务器不支持该组件,建议使用手动分页,即rs.movenext / rs.moveto
wsdzmhongm 2004-07-19
  • 打赏
  • 举报
回复
靠,你分页怎么这么晕啊
数通网络 2004-07-17
  • 打赏
  • 举报
回复
库里读不出数据的时候,而这时候没有除错语句,就出这样的错!
xiefeng 2004-07-17
  • 打赏
  • 举报
回复
救命啊!!!我也是这个问题!!!up!!!!!!
skytears 2004-07-15
  • 打赏
  • 举报
回复
都试过了还是不行
wsdzmhongm 2004-07-09
  • 打赏
  • 举报
回复
rs.AbsolutePage=cint(page)
aspczlover 2004-07-09
  • 打赏
  • 举报
回复
参数传递有问题~
加载更多回复(10)

28,409

社区成员

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

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