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
Sign Up Login You must be logged in to post a comment.