Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.8.11.17 mysql_stmt_next_result()

int mysql_stmt_next_result(MYSQL_STMT *mysql)

説明

この関数は、複数の結果セットを返すことができるプリペアド CALL ステートメントを使用して、ストアドプロシージャーを実行する場合に使用します。mysql_stmt_next_result() を呼び出すループを使用して、それ以上の結果があるかどうかを判断します。プロシージャーに OUT または INOUT パラメータがある場合、それらの値はほかの結果セットに続いて、単一の行結果セットとして返されます。値は、プロシージャーパラメータリストに宣言されている順番で表示されます。

mysql_stmt_next_result() はそれ以上の結果が存在するかどうかを示すステータスを返します。mysql_stmt_next_result() がエラーを返した場合、それ以上の結果はありません。

mysql_stmt_next_result() の各呼び出しの前に、現在の結果で結果セット (結果のステータスだけでなく) が生成された場合、現在の結果に対して mysql_stmt_free_result() を呼び出す必要があります。

mysql_stmt_next_result() を呼び出したあとの接続の状態は、mysql_stmt_execute() を呼び出した場合のようになります。このことは、mysql_stmt_bind_result()mysql_stmt_affected_rows() などを呼び出すことができることを意味します。

mysql_more_results() を呼び出して、それ以上の結果があるかどうかをテストすることもできます。ただし、この関数は接続の状態を変更しないため、それが true を返した場合は、さらに mysql_stmt_next_result() を呼び出して、次の結果に進む必要があります。

mysql_stmt_next_result() の使用方法を示す例については、セクション23.8.20「C API のプリペアド CALL ステートメントのサポート」を参照してください。

戻り値
戻り値 説明
0 成功し、それ以上の結果が存在します
-1 成功し、それ以上の結果が存在しません
0 より大きい エラーが発生しました
エラー
  • CR_COMMANDS_OUT_OF_SYNC

    コマンドが正しくない順番で実行されました。

  • CR_SERVER_GONE_ERROR

    MySQL サーバーが存在しなくなりました。

  • CR_SERVER_LOST

    サーバーへの接続がクエリー中に失われました。

  • CR_UNKNOWN_ERROR

    不明なエラーが発生しました。


User Comments
Sign Up Login You must be logged in to post a comment.