使用資料指標 (ODBC)
使用資料指標
呼叫 SQLSetStmtAttr 來設定所需的資料指標屬性:
設定 SQL_ATTR_CURSOR_TYPE 和 SQL_ATTR_CONCURRENCY 屬性 (這是慣用的選項)。
Or
設定 SQL_CURSOR_SCROLLABLE 和 SQL_CURSOR_SENSITIVITY 屬性。
使用 SQL_ATTR_ROW_ARRAY_SIZE 屬性呼叫 SQLSetStmtAttr 來設定資料列集大小。
如果使用 WHERE CURRENT OF 子句完成定點更新,可以選擇呼叫 SQLSetCursorName 來設定資料指標名稱。
執行 SQL 陳述式。
如果使用 WHERE CURRENT OF 子句完成定點更新,而且資料指標名稱沒有隨步驟 3 中的 SQLSetCursorName 提供,可以選擇呼叫 SQLGetCursorName 來設定資料指標名稱。
呼叫 SQLNumResultCols 來取得資料列集中的資料行 (C) 數目。
使用資料行取向的繫結。
- 或 -
使用資料列取向的繫結。
視需要,從資料指標提取資料列集。
呼叫 SQLMoreResults 來判斷是否有其他結果集可用。
如果該函數傳回 SQL_SUCCESS,表示有其他可用的結果集。
如果該函數傳回 SQL_NO_DATA,表示沒有其他可用的結果集。
如果該函數傳回 SQL_SUCCESS_WITH_INFO 或 SQL_ERROR,請呼叫 SQLGetDiagRec 來判斷是否可以使用來自 PRINT 或 RAISERROR 陳述式的輸出。
如果繫結陳述式參數用於預存程序的輸出參數或傳回值,請使用繫結參數緩衝區中目前可用的資料。
在使用繫結參數時,每個 SQLExecute 或 SQLExecDirect 呼叫都會執行 SQL 陳述式 S 次,其中 S 是繫結參數陣列中的元素數。 這代表將要處理 S 個結果集,其中每個結果集都是由 SQL 陳述式的單一執行通常會傳回的結果集、輸出參數和傳回碼等所有項目而組成。
請注意,當結果集包含計算資料列時,每個計算資料列都可以提供為個別的結果集。 這些計算結果集會散佈在一般的資料列內,將一般的資料列分隔成多個結果集。
您可以選擇使用 SQL_UNBIND 呼叫 SQLFreeStmt,以釋放任何繫結的資料行緩衝區。
如果有其他可用的結果集,請到步驟 6。
在步驟 9 中,呼叫部分處理之結果集上的 SQLMoreResults 會清除結果集的其餘部分。 清除部分處理之結果集的另一個方式為,呼叫 SQLCloseCursor。
您可以透過設定 SQL_ATTR_CURSOR_TYPE 和 SQL_ATTR_CONCURRENCY,或是設定 SQL_ATTR_CURSOR_SENSITIVITY 和 SQL_ATTR_CURSOR_SCROLLABLE,控制所使用的資料指標類型。 您不應該混合使用這兩種指定資料指標行為的方法。