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