Spec-Zone .ru
спецификации, руководства, описания, API
|
int mysql_stmt_next_result(MYSQL_STMT *mysql)
Эта функция используется, когда Вы используете подготовленный CALL
операторы, чтобы выполнить хранимые процедуры, которые могут возвратить
многократные наборы результатов. Используйте цикл, который вызывает mysql_stmt_next_result()
определить, есть ли больше результатов. Если
процедура имеет OUT
или INOUT
параметры, их значения
будут возвращены как набор результатов единственной строки после любых других наборов результатов. Значения
появятся в порядке, в котором они объявляются в списке параметров процедуры.
mysql_stmt_next_result()
возвращает состояние, чтобы указать, существует ли больше результатов. Если mysql_stmt_next_result()
возвращает ошибку, нет больше результатов.
Перед каждым звонком mysql_stmt_next_result()
,
следует вызвать mysql_stmt_free_result()
для текущего результата, если это произвело набор
результатов (а не только состояние результата).
После вызова mysql_stmt_next_result()
состояние соединения - то, как будто Вы вызвали mysql_stmt_execute()
. Это означает, что можно вызвать mysql_stmt_bind_result()
, mysql_stmt_affected_rows()
, и т.д.
Также возможно протестировать, есть ли больше результатов, вызывая mysql_more_results()
. Однако, эта функция не изменяет состояние соединения, так,
если это возвращает true, следует все еще вызвать mysql_stmt_next_result()
совершенствоваться к следующему результату.
Для примера, который показывает, как использовать mysql_stmt_next_result()
, см. Раздел
21.8.20, "Поддержка API C Готового CALL
Операторы".
Возвращаемое значение | Описание |
---|---|
0 | Успешный и есть больше результатов |
-1 | Успешный и нет больше результатов |
>0 | Ошибка произошла |
Команды выполнялись в неподходящем порядке.
Сервер MySQL ушел.
Соединение с сервером было потеряно во время запроса.
Произошла неизвестная ошибка.