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.3 mysql_stmt_attr_set()

my_bool mysql_stmt_attr_set(MYSQL_STMT *stmt, enum enum_stmt_attr_type option, const void *arg)

説明

プリペアドステートメントの動作に影響を与えるために使用できます。この関数を複数回呼び出して、複数のオプションを設定できます。

option 引数は、設定するオプションです。arg 引数はオプションの値です。arg は、目的の属性値に設定される変数を指すべきです。変数の型は次の表に示すようなものになります。

次の表に可能な option 値を示します。

オプション 引数型 関数
STMT_ATTR_UPDATE_MAX_LENGTH my_bool * 1 に設定されている場合、mysql_stmt_store_result() によってメタデータ MYSQL_FIELD->max_length 値が更新されます。
STMT_ATTR_CURSOR_TYPE unsigned long * mysql_stmt_execute() が呼び出されたときにステートメントに対して開くカーソルの型。*argCURSOR_TYPE_NO_CURSOR (デフォルト) または CURSOR_TYPE_READ_ONLY を指定できます。
STMT_ATTR_PREFETCH_ROWS unsigned long * カーソルの使用時に、サーバーからフェッチする行数。*arg は 1 から unsigned long の最大値の範囲で指定できます。デフォルトは 1 です。

CURSOR_TYPE_READ_ONLYSTMT_ATTR_CURSOR_TYPE オプションを使用する場合、mysql_stmt_execute() を呼び出すと、ステートメントに対して、カーソルが開かれます。前の mysql_stmt_execute() 呼び出しからの開いているカーソルがすでに存在する場合、それは新しいカーソルを開く前にカーソルを閉じます。mysql_stmt_reset() もステートメントの再実行を準備する前に、開いているカーソルを閉じます。mysql_stmt_free_result() はすべての開いているカーソルを閉じます。

プリペアドステートメントに対してカーソルを開く場合、mysql_stmt_store_result() は結果セットをクライアント側にバッファーさせるため、必要ありません。

戻り値

成功の場合はゼロ。option が不明な場合はゼロ以外。

エラー

なし。

次の例は、プリペアドステートメントに対してカーソルを開き、一度にフェッチする行数を 5 に設定します。

MYSQL_STMT *stmt;
int rc;
unsigned long type;
unsigned long prefetch_rows = 5;

stmt = mysql_stmt_init(mysql);
type = (unsigned long) CURSOR_TYPE_READ_ONLY;
rc = mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void*) &type);
/* ... check return value ... */
rc = mysql_stmt_attr_set(stmt, STMT_ATTR_PREFETCH_ROWS,
                         (void*) &prefetch_rows);
/* ... check return value ... */

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.