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() 是否傳回零。

範例

請參閱 第 7 章,C API 非同步介面