查询结果分页为何不成功?

leoleevi 2001-03-20 03:44:00
代码1:
Set RS=Server.CreateObject("ADODB.Recordset")
'打开记录集对象, 并使用静态记录指针, 亦可传入1使用索引集记录指针
RS.Open "货物信息",DBConnection,3
'设定每10笔记录为1页
RS.PageSize =10

代码2:
Set RS=DBConnection.Execute(SQL_Statement)
'按照输入的SQL查询条件建立RS
RS.Open "货物信息",DBConnection,3
'设定每5笔记录为1页
RS.PageSize =10

两段代码,第一段是从数据库中直接读取数据,然后进行分页显示,第二段将数据库中符合查询条件的信息分页显示。

初学,无经验,不知RS建立的有何区别。为何第一段没有问题,第二段就出现如下问题?
*******************************
ADODB.Recordset 错误 '800a0e79'
对象打开时,操作不被允许。
/mylocalasp/search.asp,行39
*******************************

而且我把RS.Open "货物信息",DBConnection,3这句去掉就可以显示查询的数据,但是查询后结果的分页还是不能实现,请高手帮忙分析一下这个问题!!!!


...全文
211 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leoleevi 2001-03-21
  • 打赏
  • 举报
回复
大功告成,谢谢!
tripofdream 2001-03-20
  • 打赏
  • 举报
回复
1.Set RS=DBConnection.Execute(SQL_Statement)已經產生了Recordset,再open當然出錯;
2.Execute方法產生的recordset是forward-only的,不可分頁;
3.把這兩句改成:
set rs=server.createobject("adodb.recordset")
rs.open SQL_Statement,DBConnection,3
就可以了.

subzero 2001-03-20
  • 打赏
  • 举报
回复
看看你39行上面rs没有close,39行操作rs当然会出错
leoleevi 2001-03-20
  • 打赏
  • 举报
回复
如果加了RS.close,那么就查询不到任何信息了。
下面是完整的一段程序,也是出问题的一段,麻烦帮忙找问题

<%

SQL_Statement=Request("SQL_Statement")
if SQL_Statement<>Empty then
'声明Connection(数据库链接)对象
Set DBConnection= Server.CreateObject("ADODB.Connection")
'设置与数据库链接的链接字符串
ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/db.mdb")
'打开链接数据库的信道
DBConnection.Open ConnectionString
'声明使用Recordset对象接收SQL查询所返回的值
SQL_Statement="select * from 货物信息 where 产品名称 like '%" & Request("SQL_Statement") & "%'"
SQL_Statement=SQL_Statement & "or 单价 like '%" & Request("SQL_Statement") & "%'"
Set RS=DBConnection.Execute(SQL_Statement)
''Rs.close()


''Set RS=Server.CreateObject("ADODB.Recordset")
'打开记录集对象, 并使用静态记录指针, 亦可传入1使用索引集记录指针
''RS.Open "货物信息",DBConnection,3
'设定每10笔记录为1页
RS.PageSize =10
'判断是否可取得ToPage参数,
'如果用户输入了页码则本ASP网页应显示特定的分页数据

if Not IsEmpty(Request("ToPage")) then
'取得指定显示的分页页数
ToPage = CInt(Request("ToPage"))
'判断指定页数是否大于总页数,如果输入的页数过大
'则将它设定为最后一页
if ToPage > RS.PageCount then
RS.AbsolutePage = RS.PageCount
'若指定页数小于0, 则设定显示第一页
elseif ToPage <= 0 then
RS.AbsolutePage = 1
else
'将记录指针设定欲检视的分页
RS.AbsolutePage = ToPage
end if
End if


'如果用户输入了页码则本ASP网页应显示特定的分页数据
%>
amay 2001-03-20
  • 打赏
  • 举报
回复
RS.close
ccwj 2001-03-20
  • 打赏
  • 举报
回复
搜索一下帖子,能作好的!我刚刚作好.

28,406

社区成员

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

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