存储过程分页,如何取到记录集?

New_Nice 2007-06-27 03:50:22
我附上我的存储过程:
CREATE PROCEDURE infopagelist
@currentpage int,@keyword varchar(100)
as

SET NOCOUNT ON
Declare @p1 int,@rowcount int,@pagesize int,@sqlstr varchar(1000)
set @pagesize=40
set @sqlstr='select id,title from T_info'
if @keyword!='' begin
set @sqlstr=@sqlstr+' where title like ''%'+@keyword+'%'''
end
set @sqlstr=@sqlstr+' order by id desc'

exec sp_cursoropen @p1 output,@sqlstr,@scrollopt=1,@ccopt=1
--select ceiling(1.0*@rowcount/@pagesize) as totalpage
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @p1,16,@currentpage,@pagesize
exec sp_cursorclose @p1
set nocount off
GO


下面是的我程序,我无法运行了,那位好心人帮我看看

<%@ page contentType="text/html;charset=GBK" %><%@ page import="java.sql.*" %><%@ page import="comic.count" %><jsp:useBean id="count" scope="page" class="comic.count" /><%

ResultSet revalue=null;
Connection conn;
Statement stmt;

String proname="infopagelist",par="1,性";
String call_pro_str="{call "+proname+"(";
String[] pars=par.split(",");
for(int i=0;i<pars.length;i++)
{call_pro_str=call_pro_str+"?,";}
call_pro_str=call_pro_str.substring(0,call_pro_str.length()-1);
call_pro_str=call_pro_str+")}";

conn = DriverManager.getConnection(url, user, pass);
CallableStatement call_pro=conn.prepareCall(call_pro_str);//创建对象

call_pro.setString(1,pars[0]);
call_pro.setString(2,pars[1]);
call_pro.executeQuery();
revalue=call_pro.getResultSet();
call_pro.getMoreResults();
revalue=call_pro.executeQuery();
call_pro.close();
conn.close();

while(revalue.next()){
out.print(revalue.getString("id")+"<br>");
}
%>


或者那位好心人给我源代码(存储过程+jsp程序),我自已研究也可以
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
New_Nice 2007-06-28
  • 打赏
  • 举报
回复
这个问题没有人可以解决嘛?
jacklondon 2007-06-28
  • 打赏
  • 举报
回复
我不太熟悉 SQL Server, 似乎是你在存储过程的,获取的数据,没有通过存储过程传出来。
你是通过存储过程传出参数把结果数据传出来么?
New_Nice 2007-06-27
  • 打赏
  • 举报
回复
放到下面不报错了,但没有取到数据。存储过程执行有两个数据库,如何才能执行第二个数据集呢?
jacklondon 2007-06-27
  • 打赏
  • 举报
回复
call_pro.close();
conn.close();
要放在 while 循环下面。ResultSet 中的数据,在循环的时候才开始从数据库中读。
New_Nice 2007-06-27
  • 打赏
  • 举报
回复
to shan1119(大天使,卐~解!) 错误提示,不好意思
你有存储过程的源代码嘛?

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.pagelist_jsp._jspService(org.apache.jsp.pagelist_jsp:117)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
shan1119 2007-06-27
  • 打赏
  • 举报
回复
给出错误提示.好便于分析错误.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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