7.4.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 Chapter 7, C API Asynchronous Interface.

mysql_store_result_nonblocking() is used similarly to mysql_store_result(). For details about the latter, see Section 5.4.81, “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 7.2, “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.