Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.