共用方式為


設定資料指標選項 (ODBC)

若要設定資料指標選項,請呼叫 SQLSetStmtAttr 來設定 或 SQLGetStmtAttr ,以取得控制資料指標行為的語句選項。

Attribute 指定
SQL_ATTR_CURSOR_TYPE 順向、靜態、動態或索引鍵集驅動的資料指標類型
SQL_ATTR_CONCURRENCY 唯讀、鎖定、開放式 (使用時間戳記) 或開放式 (使用值) 的並行控制選項
SQL_ATTR_ROW_ARRAY_SIZE 每次提取中擷取的資料列數目
SQL_ATTR_CURSOR_SENSITIVITY 顯示或不顯示其他連接對資料指標資料列所做之更新的資料指標
SQL_ATTR_CURSOR_SCROLLABLE 可以前後捲動的資料指標

這些屬性 (順向、唯讀、資料列集大小為 1) 的預設值不會使用伺服器資料指標。 若要使用伺服器資料指標,至少其中一個屬性必須設定為預設值以外的值,而且所執行的陳述式必須為單一 SELECT 陳述式或包含單一 SELECT 陳述式的預存程序。 使用伺服器資料指標時,SELECT 陳述式無法使用伺服器資料指標不支援的子句:COMPUTE、COMPUTE BY、FOR BROWSE 和 INTO。

您可以透過設定 SQL_ATTR_CURSOR_TYPE 和 SQL_ATTR_CONCURRENCY,或是設定 SQL_ATTR_CURSOR_SENSITIVITY 和 SQL_ATTR_CURSOR_SCROLLABLE,控制所使用的資料指標類型。 您不應該混合使用這兩種指定資料指標行為的方法。

範例

下列範例會配置陳述式控制代碼、使用資料列版本設定開放式並行存取來設定動態資料指標類型,然後執行 SELECT。

retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);  
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER)SQL_CURSOR_DYNAMIC, SQL_IS_INTEGER);  
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CONCURRENCY, SQLPOINTER)SQL_CONCUR_ROWVER, SQL_IS_INTEGER);  
retcode = SQLExecDirect(hstmt1, SELECT au_lname FROM authors", SQL_NTS);  

範例

下列範例會配置陳述式控制代碼、設定可捲動的感應式資料指標,然後執行 SELECT。

retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);  
  
// Set the cursor options and execute the statement.  
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_SCROLLABLE, SQLPOINTER)SQL_SCROLLABLE, SQL_IS_INTEGER);  
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_SENSITIVITY, SQLPOINTER)SQL_INSENSITIVE, SQL_IS_INTEGER);  
retcode = SQLExecDirect(hstmt1, select au_lname from authors", SQL_NTS);  

另請參閱

執行查詢使用說明主題 (ODBC)