CallableStatement调用sql server存储过程的问题(是个技术问题啊,怎么解决啊?)
java程序是这样的:
...
CallableStatement toesUp = null;
toesUp= conn.prepareCall("{call pagination(?,?,?,?,?,?) }");
toesUp.setString(1,strPerpagenumber);
toesUp.setString(2,strPagenumber);
toesUp.setString(3,strTablename);
toesUp.setString(4,strOrderby);
toesUp.setString(5,strSqlCondition);
toesUp.registerOutParameter(6,java.sql.Types.VARCHAR);
try
{
toesUp.execute();
ResultSet rs = (ResultSet) toesUp.getResultSet();
strTotalresult=toesUp.getString(6);
ResultSetMetaData rsmd = null;
...
}
SQL SERVER的存储过程是这样的
...
create procedure pagination
@perpagenumber varchar(10)='20',
@pagenumber varchar(10)='1',
@tablename varchar(20)='tmp_t_cs_infos_his',
@orderby varchar(200)='order by cust_code,backupdate',
@sqlcondition varchar(200)=''
@totalresult varchar(200) output
as
begin
...
select * from tmp_t_cs_infos_his
select @totalresult=count(*) from tmp_t_cs_infos_his
end
我跟踪调试的时候,会发现ResultSet rs = (ResultSet) toesUp.getResultSet()的rs为NULL值,但存储过程的返回参数的值能取到,不是空的。请高手帮帮忙啊
如果我去掉“存储过程的返回参数”就OK了,存储过程的返回的记录集就能取到(rs就不为空了)请问是什么原因啊?有解决的方法吗?