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.28 mysql_stmt_store_result()

int mysql_stmt_store_result(MYSQL_STMT *stmt)

説明

結果セットは、SELECTSHOWDESCRIBE、および EXPLAIN などの SQL ステートメントの実行されたプリペアドステートメントに対し、mysql_stmt_execute() を呼び出して生成されます。デフォルトで、正常に実行されたプリペアドステートメントの結果セットは、クライアントでバッファーされず、mysql_stmt_fetch() はそれらをサーバーから一度に 1 つずつフェッチします。クライアントで完全な結果セットをバッファーさせるには、mysql_stmt_bind_result() によってデータバッファーをバインドしたあと、かつ mysql_stmt_fetch() を呼び出して行をフェッチする前に mysql_stmt_store_result() を呼び出します。(例については、セクション23.8.11.11「mysql_stmt_fetch()」を参照してください。)

mysql_stmt_data_seek()mysql_stmt_row_seek()、または mysql_stmt_row_tell() を呼び出さないかぎり、mysql_stmt_store_result() は結果セットの処理にオプションです。それらの関数ではシーク可能な結果セットが必要です。

結果セットを生成しない SQL ステートメントの実行後に、mysql_stmt_store_result() を呼び出す必要はありませんが、そうした場合に、損害を与えたり、目立ったパフォーマンスの問題を発生させたりすることはありません。mysql_stmt_result_metadata()NULL を返すかどうかをチェックすることによって、ステートメントが結果セットを生成したかどうかを検出できます。詳細については、セクション23.8.11.23「mysql_stmt_result_metadata()」を参照してください。

注記

MySQL はデフォルトで、mysql_stmt_store_result() ですべてのカラムの MYSQL_FIELD->max_length を計算しません。これを計算すると、mysql_stmt_store_result() がかなり遅くなることがあり、ほとんどのアプリケーションで max_length を必要としないためです。max_length を更新する必要がある場合、mysql_stmt_attr_set(MYSQL_STMT, STMT_ATTR_UPDATE_MAX_LENGTH, &flag) を呼び出してこれを可能にできます。セクション23.8.11.3「mysql_stmt_attr_set()」を参照してください。

戻り値

成功の場合はゼロ。エラーが発生した場合、ゼロ以外。

エラー
  • CR_COMMANDS_OUT_OF_SYNC

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

  • CR_OUT_OF_MEMORY

    メモリー不足。

  • 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.