MySQL 8.4 C API 开发者指南  /  ...  /  mysql_store_result_nonblocking()

7.4.8 mysql_store_result_nonblocking()

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

说明

注意

mysql_store_result_nonblocking() 是一个异步函数。它是同步函数 mysql_store_result() 的对应函数,供需要与服务器进行异步通信的应用程序使用。有关编写异步 C API 应用程序的常规信息,请参阅第 7 章,C API 异步接口

mysql_store_result_nonblocking() 的使用方式类似于 mysql_store_result()。有关后者的详细信息,请参阅第 5.4.84 节,“mysql_store_result()”。这两个函数的区别如下:

  • mysql_store_result() 返回一个指向包含结果集的 MYSQL_RESULT 值的指针,如果没有结果集或发生错误,则返回 NULL

  • mysql_store_result_nonblocking() 返回一个 enum net_async_status 状态指示器,并接受第二个参数 result,该参数是指向 MYSQL_RESULT 的指针的地址,结果集将存储到该指针中。当返回状态为 NET_ASYNC_COMPLETE 时,如果没有结果集或发生错误,则 result 参数为 NULL

mysql_store_result_nonblocking() 已添加到 MySQL 8.0.16 中。

返回值

返回一个 enum net_async_status 值。请参阅第 7.2 节,“C API 异步接口数据结构” 中的说明。 NET_ASYNC_ERROR 返回状态表示发生错误。

当返回状态为 NET_ASYNC_COMPLETE 时,如果没有结果集或发生错误,则 result 参数为 NULL。要确定是否发生错误,请检查 mysql_error() 是否返回非空字符串,mysql_errno() 是否返回非零值,或者 mysql_field_count() 是否返回零。