Возврат выходных значений из PROC, который имеет несколько запросов с использованием SQLSRV

У меня есть хранимая процедура с четырьмя операторами SELECT и одним оператором UPDATE. Первый оператор SELECT возвращает набор результатов (который я могу получить нормально). Второй, третий и четвертый операторы SELECT возвращают переменные OUTPUT, но я не могу получить их значения. Я понимаю, что мне нужно использовать sqlsrv_next_result(), чтобы обойти набор результатов, но я не уверен, нужны ли мне дополнительные для трех других операторов SELECT. Другими словами, нужен ли мне sqlsrv_next_result() только для оператора SELECT, который возвращает набор результатов, мне нужно четыре (по одному для каждого оператора SELECT) или, может быть, пять (дополнительный, чтобы обойти их все)? Примечание. У меня есть команда SET NOCOUNT ON в PROC из-за оператора UPDATE, так что это не должно быть проблемой.


person user39653    schedule 04.12.2019    source источник


Ответы (1)


Похоже, что источником моей проблемы была неправильная инициализация пары выходных переменных, установка их как целых чисел вместо varchars. Теперь, когда это исправлено, кажется, что ответ на мой вопрос заключается в том, что мне нужен один sqlsrv_next_result для каждого оператора SELECT, который возвращает набор результатов, а не для тех, которые возвращают переменные OUTPUT.

person user39653    schedule 04.12.2019