共用方式為


使用資料指標 (ODBC)

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

使用數據指標

  1. 呼叫 SQLSetStmtAttr 以設定所需的數據指標屬性:

    設定SQL_ATTR_CURSOR_TYPE和SQL_ATTR_CONCURRENCY屬性(這是慣用的選項)。

    Or

    設定SQL_CURSOR_SCROLLABLE和SQL_CURSOR_SENSITIVITY屬性。

  2. 呼叫 SQLSetStmtAttr ,以使用 SQL_ATTR_ROW_ARRAY_SIZE 屬性來設定數據列集大小。

  3. 或者,如果使用 WHERE CURRENT OF 子句來完成定位更新,請呼叫 SQLSetCursorName 來設定數據指標名稱。

  4. 執行 SQL 語句。

  5. 或者, 呼叫 SQLGetCursorName 以取得數據指標名稱,如果使用 WHERE CURRENT OF 子句來完成定位更新,而且步驟 3 中未提供數據指標名稱與 SQLSetCursorName

  6. 呼叫 SQLNumResultCols 以取得數據列集中的數據行數目(C)。

    使用數據行型系結。

    - 或 -

    使用數據列式系結。

  7. 視需要從數據指標擷取數據列集。

  8. 呼叫 SQLMoreResults 以判斷是否有其他結果集可用。

    • 如果傳回SQL_SUCCESS,則會提供另一個結果集。

    • 如果傳回SQL_NO_DATA,就不會再使用任何結果集。

    • 如果傳回SQL_SUCCESS_WITH_INFO或SQL_ERROR,請呼叫 SQLGetDiagRec 來判斷 PRINT 或 RAISERROR 語句的輸出是否可用。

    如果係結語句參數用於輸出參數或預存程式的傳回值,請使用係結參數緩衝區中現在可用的數據。

    使用係結參數時,每個對 SQLExecuteSQLExecDirect 的呼叫都會執行 SQL 語句 S 時間,其中 S 是係結參數數位中的元素數目。 這表示將會有一組要處理的結果,其中每個結果集都包含所有結果集、輸出參數,以及通常由單一執行 SQL 語句傳回的傳回碼。

    請注意,當結果集包含計算數據列時,每個計算數據列都會以個別的結果集的形式提供。 這些計算結果集會插在一般數據列內,並將一般數據列分成多個結果集。

  9. 或者,使用 SQL_UNBIND 呼叫 SQLFreeStmt ,以釋放任何系結的數據行緩衝區。

  10. 如果有另一個結果集可用,請移至步驟 6。

    在步驟 9 中,在部分處理的結果集上呼叫 SQLMoreResults 會清除結果集的其餘部分。 清除部分處理結果集的另一種方式是呼叫 SQLCloseCursor

    您可以設定SQL_ATTR_CURSOR_TYPE和SQL_ATTR_CONCURRENCY,或設定SQL_ATTR_CURSOR_SENSITIVITY和SQL_ATTR_CURSOR_SCROLLABLE,來控制所使用的數據指標類型。 您不應該混合指定數據指標行為的兩種方法。

另請參閱

使用資料指標操作說明主題 (ODBC)