我的调用存储过程的程序那错了阿 菜鸟问

whxleem 2005-06-23 08:48:27
/*
* 创建日期 2005-6-21
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/

package test;

import java.sql.*;

import java.util.Vector;
/**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/

public class HelloWorld {
public ResultSet rs =null;
public Connection con=null;
public HelloWorld()
{

}
public String GetName()
{
return "用javabean生成rs 在页面中调用后的结果列表:";
}
/**
* 参数说明:
1.Tables :表名称,视图
2.PrimaryKey :主关键字
3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
4.CurrentPage :当前页码
5.PageSize :分页尺寸
6.Fields :字段
7.Filter :过滤语句,不带Where
8.Group :Group语句,不带Group By
*/
public ResultSet GetList(String Tables,String PrimaryKey,String MySort,int CurrentPage,int PageSize,String Fields,String Filter,String Group) throws SQLException
{
CallableStatement call = null;
try{
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=liveflow";


String user ="sa";//数据库用户名
String password = "sa";//数据库用户密码
//String sqlStr = "select top 100 * from employee_base";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection( url, user, password );
//调用存储过程
call = con.prepareCall("{call CN5135_SP_Pagination(?,?,?,?,?,?,?,?)}");
call.setString(1,Tables);
call.setString(2,PrimaryKey);
call.setString(3,MySort);
call.setInt(4,CurrentPage);
call.setInt(5,PageSize);
call.setString(6,Fields);
call.setString(7,Filter);
call.setString(8,Group);

rs=call.executeQuery();


}
catch(Exception ee)
{
System.out.println("connect db error:"+ee.getMessage());
}
//finally
//{
// if(rs!=null)
// {
// con.close();
// }
//}
return rs;
}

}
...全文
143 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jihanzhong 2005-06-23
  • 打赏
  • 举报
回复
不知道你什么数据库~
whxleem 2005-06-23
  • 打赏
  • 举报
回复
我试验了 都不可以 我现在就想知道我的调用的语法有没有错误 在我看来没什么错误啊
108041217 2005-06-23
  • 打赏
  • 举报
回复
PreparedStatement pstmt = con.prepareStatement("select CN5135_SP_Pagination(?,?,?,?,?,?,?,?)");
pstmt.setString(1,...)
pstmt.setString(2,...);
pstmt.setString(3,...);
pstmt.setString(4,...);
pstmt.setString(5,...);
108041217 2005-06-23
  • 打赏
  • 举报
回复
select CN5135_SP_Pagination(?,?,?,?,?,?,?,?)
試試可以嗎.
fmzbj 2005-06-23
  • 打赏
  • 举报
回复
帮顶
jihanzhong 2005-06-23
  • 打赏
  • 举报
回复
存储过程复杂的时候,java调用存储过程返回的结果可能是这样:

1:#%#¥%¥#
2:¥#%¥#%
3:这里才是结果集
4:%$^%$
5: 可能是结果集2

。。。
jihanzhong 2005-06-23
  • 打赏
  • 举报
回复
这样写好点:
--------------------------------

call.execute();
//取得记录集
do{
rs = call.getResultSet();
if(null!=rs){
......
break;
}else if(call.getUpdateCount() == -1)
{
System.out.println("无记录集!!");
break;
}
}while(call.getMoreResults())

Phray 2005-06-23
  • 打赏
  • 举报
回复
如果在"查询分析器里"调试通过而在程序中返回的rs是空,即报"No ResultSet was Produced"异常的错误估计很可能是因为在你的存储过程里没有把这个开关打开.在你的SP的前部分加上这行"Set nocount on"编译SP再重新试试!
jihanzhong 2005-06-23
  • 打赏
  • 举报
回复
call.execute();
//取得记录集
while(true){
rs = call.getResultSet();
if(null!=rs){
......
break;
}else if( call.getMoreResults() )
{
rs = call.getResultSet();
.................. break;
}else if(call.getUpdateCount() == -1)
{
System.out.println("无记录集!!");
break;
}
}
whxleem 2005-06-23
  • 打赏
  • 举报
回复
为什么返回的rs总是空的哪 我的存储过程没有问题 我在查询分析器里已经调试了
whxleem 2005-06-23
  • 打赏
  • 举报
回复
现在确定调用的方法是没有错误了 ,可是我怎么样把现在这个bean
里的结果集返回给jsp页面来展示哪 怎么也传不过去

81,094

社区成员

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

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