环境sqlserver2005
JdbcTemplate调用存储过程 execute()执行返回false?导致返回ResultSet为空
在sqlserver2000是可以使用的package com.dagongDB.dao.impl;import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;import com.dagongDB.dao.IBaseGridDAO;
public class BaseGridDAOImpl extends BaseDAOImpl implements IBaseGridDAO { public Collection hongGuanGrid(String sTime,String eTime,String str) {
// TODO Auto-generated method stub
Object obj = null;
try {
str = str.replaceAll("@", ",");
String[] as = str.split(",");
final int aslength = as.length;
System.out.println(str + "=====");
final String callString = "{call rowToCol(?)}";
final String sqlParam = "SELECT ss.TongJiRQ,sz.ZhiBiaoMC,ss.ZhiBiaoZ into temp_rowToCol FROM TbHongGuanZBSS ss,TbHongGuanZBSZ sz WHERE ss.TongJiRQ >= " + sTime + " AND ss.TongJiRQ <= " + eTime + " AND ss.ZhiBiaoBM IN (SELECT CengCiM FROM TbFenLeiJD WHERE JieDianBH IN(" + str + ")) AND ss.ZhiBiaoBM = sz.BianMa";
System.out.println(sqlParam);
obj = getJdbcTemplate().execute(callString, new CallableStatementCallback(){   
        public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
         ResultSet rs = null;
            cs.setString(1, sqlParam);
            List te = new ArrayList();
//             rs = (ResultSet)cs.executeQuery();//sqlserver2000 可以使用此方法
//             boolean b = cs.execute(sqlParam);
            boolean bl = cs.execute();//返回false,怎么解决啊
            rs = cs.getResultSet();
            System.out.println("77777777=" + rs + "   cs.execute()=" + bl);
            int lg = aslength + 1;
            while(rs.next())
            {
//                 System.out.println(rs.getInt(1)+rs.getString(2));
            }
if(cs.getMoreResults())
            {
                rs = cs.getResultSet();
                while (rs.next()) {
                 System.out.println(rs.getInt(1) + "-" + rs.getBigDecimal(2) + "-" + rs.getBigDecimal(3));
                 String[] arr = new String[lg];
                 int m = 0;
                 arr[m] = rs.getInt(1) + "";
                 m = m + 1;
                 for(int i=m;i<lg;i++){
//                  if(i%2 == 1){
//                  arr[i] = rs.getString(i + 1) + "";
//                  }else
                 arr[i] = rs.getBigDecimal(i + 1) + "";
                 }
                 te.add(arr);
                }
            }
            return te;   
        }      
    });
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List lt = (ArrayList)obj;
// if(lt != null && lt.size() != 0){
// for(int n=0;n<lt.size();n++){
// String[] arrs = (String[])lt.get(n);
// for(int k=0;k<arrs.length;k++){
// System.out.print(arrs[k] + "-");
// }
// System.out.println("--------------------------");
// }
// }
return lt;
} public BaseGridDAOImpl() {
super();
// TODO Auto-generated constructor stub
}

}