mysql_stmt_attr_set

基本介紹

  • 中文名:mysql_stmt_attr_set
  • 頭檔案:#include<mysql.h>
  • 函式原型:int mysql_stmt_attr_set
  • 可用於:影響預處理語句的行為
頭檔案,函式原型,說明,範例,

頭檔案

#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*) &prefetch_rows);
/* ... check return value ... */

相關詞條

熱門詞條

聯絡我們