Найч
Алгоритмик :-)
M$. Получить retval и recordset из хранимой процедуры
Здравствуйте!
Пытаюсь найти ответ на простой вопрос - необходимо после вызова хранимой процедуры вытащить результаты из ее тела (select'ы) и обработать значение, возвращаемое через return. Что мною было опробировано.
В процедуре:
[sql]
select * from books;
RETURN -111
[/sql]
при этом таблица books не пустая
1.
И тогда в $res мы получаем набор рекордсетов из процедуры, по которым перемещаемся через mssql_next_result. Но возвращаемого значения среди них найти мне не удалось.
2.
в переменной $retval возвращаемое значение, но mssql_execute всегда (при удачном выполнении процедуры) возвращает 1. Не понятно, как достать результат выборки. На www.php.net в комментариях к этим функциям народ разбирает их через mssql_fetch_x, но мне не удалось заставить mssql_execute вернуть в $res что-то, кроме 1.
@@ERROR стабильно 0, процедура отрабатывает нормально.
Чего я не учел? Или, если сформулировать иначе, коим образом можно из хранимой процедуры получить рузельтаты select'ов и значение return'а?
ЗЫ. Поиск по форуму к результатам не привел, два дня поиска в Google тоже.
Забыл добавить - можно возвращаемое значение передавать через OUTPUT переменную, но это заплатка.
Зараннее спасибо
Здравствуйте!
Пытаюсь найти ответ на простой вопрос - необходимо после вызова хранимой процедуры вытащить результаты из ее тела (select'ы) и обработать значение, возвращаемое через return. Что мною было опробировано.
В процедуре:
[sql]
select * from books;
RETURN -111
[/sql]
при этом таблица books не пустая
1.
PHP:
$query="EXECUTE Proc";
.......................................
$res=mssql_query($query) or die ("Error executing Proc!");
2.
PHP:
$retval="";
$proc=mssql_init("Proc");
mssql_bind($proc,"RETVAL",&$retval,SQLINT4);
$res=mssql_execute($proc) or die ("Error executing Proc!");
@@ERROR стабильно 0, процедура отрабатывает нормально.
Чего я не учел? Или, если сформулировать иначе, коим образом можно из хранимой процедуры получить рузельтаты select'ов и значение return'а?
ЗЫ. Поиск по форуму к результатам не привел, два дня поиска в Google тоже.
Забыл добавить - можно возвращаемое значение передавать через OUTPUT переменную, но это заплатка.
Зараннее спасибо