mysql_stmt_attr_set

#in clude>mysql.h

頭檔案

#include<mysql.h>

函式原型

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

說明

可用於影響預處理語句的行為。可多次調用該函式來設定多個選項。“option”參量是希望設定的選項,“arg”參量是選項的值。如果“option”是整數,那么“arg”應指向整數的值。

如果與CURSOR_TYPE_READ_ONLY一起使用了STMT_ATTR_CURSOR_TYPE選項,當調用了mysql_stmt_execute()時,將為語句打開游標。如果存在由前一個mysql_stmt_execute()調用打開的游標,在打開新的游標前,將關閉該游標。此外,為再執行而準備語句之前,mysql_stmt_reset()還將關閉任何打開的游標。mysql_stmt_free_result()將關閉任何打開的游標。

如果為預處理語句打開了游標,沒必要調用mysql_stmt_store_result(),這是因為,該函式會導致在客戶端一側對結果集進行緩衝處理。在MySQL 5.0.2中增加了STMT_ATTR_CURSOR_TYPE選項。在MySQL 5.0.6中,增加了STMT_ATTR_PREFETCH_ROWS選項。如果OK,返回0。如果選項未知,返回非0值。

範例

在下述示例中,為預處理語句打開了1個游標,並將每次獲取的行數設為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*) ⪯fetch_rows);

/* ... check return value ... */

相關詞條

熱門詞條

聯絡我們