JSP中 有语句
rs=conn.exeQry('exec proc_aaa')
但常识rs.next();后rs.getString(1);提示null pointer exception 
但前提存储过程正确...
但存储过程中含有insert update delete select 
那么rs获取的是什么?
我只想获取select后的结果什么方法...
跪求解决方法~

解决方案 »

  1.   

    你先去数据库 exec proc_aaa 看看返回的结果!是一个结果集还是多个。
      

  2.   


       public String execute(String codes) throws Exception {
          CallableStatement stmt = con.prepareCall("{call sp_Mater(?)}");
          stmt.setString(1, codes);
          stmt.execute();      do {
             if(stmt.getUpdateCount() == -1) {
                stmt.getMoreResults();
                continue;
             }
             else {
                while(true) {
                   rs = stmt.getResultSet();               if(rs != null) {
                      while(rs.next()) {
                         return rs.getString("result");//select result from....
                      }
                   }               if(!stmt.getMoreResults()) {
                      break;
                   }
                }
             }
          }
          while(!(stmt.getResultSet() == null && stmt.getUpdateCount() == -1));      return "";
       }
      

  3.   

    在你的存储过程里加set nocount on试试!create proc proc_aaa
    as
    begin
    set nocount on
    ...
    set nocount off
    select ...
    end
    go把结果集select之间的影响行数那些东东忽略看看。
      

  4.   

    rs就是一个结果集
    如果你只想获取select的结果的话直接调用查询的方法将你存储过程中的查询结果放到结果集中
    但常识rs.next();后rs.getString(1);提示null pointer exception  
    说明没有找到你的这个查询结果所以报错,如果你只想获取select的结果的话直接调用查询的方法将你存储过程中的查询结果放到结果集中
    在存储过程中建立一个@selectSum output---存放查询结果的(这个得输出)
    在调用存储过程的时候将其输出就ok了,就可以拿到你的查询内容了