MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0

28.7.15.6 mysql_store_result_nonblocking()

enum net_async_status mysql_store_result_nonblocking(MYSQL *mysql, MYSQL_RES **result )

Description
Note

mysql_store_result_nonblocking() is an asynchronous function. It is the counterpart of the mysql_store_result() synchronous function, for use by applications that require asynchronous communication with the server. For general information about writing asynchronous C API applications, see Section 28.7.12, “C API Asynchronous Interface”.

mysql_store_result_nonblocking() is used similarly to mysql_store_result(). For details about the latter, see Section 28.7.7.79, “mysql_store_result()”. The two functions differ as follows:

  • mysql_store_result() returns a pointer to a MYSQL_RESULT value that contains the result set, or NULL if there is no result set or an error occurred.

  • mysql_store_result_nonblocking() returns an enum net_async_status status indicator and takes a second result argument that is the address of a pointer to a MYSQL_RESULT into which to store the result set. When the return status is NET_ASYNC_COMPLETE, the result argument is NULL if there is no result set or an error occurred.

mysql_store_result_nonblocking() was added in MySQL 8.0.16.

Return Values

Returns an enum net_async_status value. See the description in Section 28.7.13, “C API Asynchronous Interface Data Structures”. A NET_ASYNC_ERROR return status indicates an error.

When the return status is NET_ASYNC_COMPLETE, the result argument is NULL if there is no result set or an error occurred. To determine whether an error occurred, check whether mysql_error() returns a nonempty string, mysql_errno() returns nonzero, or mysql_field_count() returns zero.

Example

See Section 28.7.12, “C API Asynchronous Interface”.