|
Spec-Zone .ru
спецификации, руководства, описания, API
|
int mysql_stmt_next_result(MYSQL_STMT *mysql)
This function is used when you use prepared CALL
statements to execute stored procedures, which can return multiple result sets. Use a loop that calls mysql_stmt_next_result()
to determine whether there are more results. If a procedure has OUT or INOUT parameters, their values will be returned as a single-row result set
following any other result sets. The values will appear in the order in which they are declared in the procedure
parameter list.
mysql_stmt_next_result() returns
a status to indicate whether more results exist. If mysql_stmt_next_result() returns an error, there are no more results.
Before each call to mysql_stmt_next_result(),
you must call mysql_stmt_free_result() for the current result if it produced a result set
(rather than just a result status).
After calling mysql_stmt_next_result() the state of the connection is as if you had called mysql_stmt_execute(). This means that you can call mysql_stmt_bind_result(), mysql_stmt_affected_rows(), and so forth.
It is also possible to test whether there are more results by calling mysql_more_results(). However, this function does not change the connection
state, so if it returns true, you must still call mysql_stmt_next_result() to advance to the next result.
For an example that shows how to use mysql_stmt_next_result(),
see Section 22.8.20, "C API Support for Prepared
CALL Statements".
| Return Value | Description |
|---|---|
| 0 | Successful and there are more results |
| -1 | Successful and there are no more results |
| >0 | An error occurred |
Commands were executed in an improper order.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.