MySQL 8.0 C API 开发者指南  / 第 7 章 C API 异步接口  / 7.4 C API 异步函数说明  /  7.4.6 mysql_store_result_nonblocking()

7.4.6 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 异步接口