MySQL 9.0 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() 是否返回零。

示例

请参阅 第 7 章,C API 异步接口