我有一个存储过程返回一个结果集,后跟一个count(*)。这是一个移植到MS SQL 2012的Sybase存储过程。
例如,它确实......
select @resn=resn from borrower_reservations where <conditions>
select count(*) from borrower_reservations where <conditions>
@resn被定义为int out参数。
我一直无法弄清楚如何在C ++中使用SqlCommand :: Execute()获取两个结果。
我知道ExecuteNonQuery()将填充参数,而ExecuteScalar()最适合单个值,包括count(*)。
由于HasRows测试返回false,因此ExecuteReader()似乎不起作用。
处理这种类型的存储过程是否可行,或者是否必须重写存储过程?
答案 0 :(得分:0)
请参阅SqlDataReader.NextResult(SqlCommand.ExecuteReader返回SqlDataReader):
在读取批处理Transact-SQL语句的结果时,将数据读取器推进到下一个结果[set]。