存储过程返回指定的记录集
@PeopleID as varchar(50)
AS
BEGIN
Declare @iParticipate int
Declare @iFavorite int
--我参与的工程项目
exec esp_ListParticipateProject @PeopleID
Set @iParticipate = @@Rowcount
--我关心的工程项目
exec esp_ListFavoriteProject @PeopleID
Set @iFavorite = @@Rowcount
Select @iParticipate as ParticipateNum,@iFavorite as FavoriteNum
END
==========================================
问题是我只想返回最后一个select语句的结果集,但执行存储过程后是返回三个结果集包括exec的两句执行的结果集,
怎样才能指定该存储过程只返回统计数据供程序调用
相关推荐
使用OLE-DB和ADO调用返回记录集的Oracle存储过程.docx
使用OLE-DB和ADO调用返回记录集的Oracle存储过程.docx
sqlserver存储过程语法详解
主要介绍了sqlserver存储过程语法示例,需要的朋友可以参考下
ASP调用MSSQL存储过程并返回记录集源码详解宣贯.pdf
ASP调用MSSQL存储过程并返回记录集源码详解宣贯.pdf
ASP调用MSSQL存储过程并返回记录集源码详解[定义].pdf
ASP调用MSSQL存储过程并返回记录集源码详解[定义].pdf
JAVA调用存储过程
注意,以下使用数据库为sql2000,驱动jtds1.2.2 一、调用存储过程(无结果集返回) Connection connection = ConnectionHelper.getConnection(); CallableStatement callableStatement = connection.prepareCall("{ call procedureName(?,?) }"); callableStatement.setString(1, "xxxxxxxx"); callableStatement.setString(2, "xxxxxxxx"); callableStatement.execute(); //获得sql的消息并输出,这个估计很多人都需要 SQLWarning sqlWarning = callableStatement.getWarnings(); while (sqlWarning != null) { System.out.println("sqlWarning.getErrorCode() = " + sqlWarning.getErrorCode()); System.out.println("sqlWarning.getSQLState() = " + sqlWarning.getSQLState()); System.out.println("sqlWarning.getMessage() = " + sqlWarning.getMessage()); sqlWarning = sqlWarning.getNextWarning(); } //close ConnectionHelper.closeConnection(callableStatement, connection); 二、调用存储过程,返回sql类型数据(非记录集) Connection connection = ConnectionHelper.getConnection(); CallableStatement callableStatement = connection.prepareCall("{ call procedureName(?,?,?) }"); callableStatement.setString(1, "xxxxxxxx"); callableStatement.setString(2, "xxxxxxxx"); //重点是这句1 callableStatement.registerOutParameter(3, Types.INTEGER); callableStatement.execute(); //取返回结果,重点是这句2 //int rsCount = callableStatement.getInt(3); //close ConnectionHelper.closeConnection(callableStatement, connection); 三、重点来了,返回记录集,多记录集 注意,不需要注册返回结果参数,只需要在sql中select出结果即可 例如:select * from tableName 即可得到返回结果 Connection connection = ConnectionHelper.getConnection(); CallableStatement callableStatement = connection.prepareCall("{ call procedureName(?) }"); //此处参数与结果集返回没有关系 callableStatement.setString(1, "xxxxxxxx"); callableStatement.execute(); ResultSet resultSet = callableStatement.getResultSet(); //以上两个语句,可以使用ResultSet resultSet = callableStatement.executeQuery();替代 //多结果返回 ResultSet resultSet2; if (callableStatement.getMoreResults()) { resultSet2 = callableStatement.getResultSet(); while (resultSet2.next()) { } } //close ConnectionHelper.closeConnection(callableStatement, connection); 提示:多结果返回可以使用如下代码(以上主要让大家明白,单一结果和多结果的区别): Boolean hasMoreResult = true; while (hasMoreResult) { ResultSet resultSet = callableStatement.getResultSet(); while (resultSet.next()) { } hasMoreResult = callableStatement.getMoreResults(); }


