Как один процесс & quot; выбрать * & quot; и & quot; выберите количество (*) & quot; из той же хранимой процедуры, используя SqlCommand :: Execute (или альтернативу)?

Хранимая процедура, которая у меня есть, возвращает набор результатов, следующий за счет (*). Это хранимая процедура Sybase, портированная на MS SQL 2012.

Так, например, это делает …

select @resn=resn from borrower_reservations where <conditions>
select count(*) from borrower_reservations where <conditions>

@resn определяется как параметр int out.

Я не смог понять, как можно получить оба результата, используя SqlCommand :: Execute () в C ++.

Мне известно, что ExecuteNonQuery () будет заполнять параметры и что ExecuteScalar () лучше всего подходит для отдельных значений, включая count (*).

ExecuteReader (), похоже, не работает, так как тест HasRows возвращает false.

Реально ли обрабатывать хранимую процедуру такого типа, или ее нужно переписать?

0

Решение

Увидеть SqlDataReader.NextResult (SqlDataReader возвращается SqlCommand.ExecuteReader):

Продвигает считыватель данных к следующему результату [set] при чтении результатов пакетных операторов Transact-SQL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]