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 非同步介面