快速向前資料指標 (ODBC)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
連線到 SQL Server 實例時,SQL Server Native Client ODBC 驅動程式支援針對正向唯讀數據指標的效能優化。 驅動程式和伺服器會以非常類似於默認結果集的方式,在內部實作快速向前數據指標。 除了具有高效能之外,快速向前數據指標也有下列特性:
不支援 SQLGetData 。 結果集數據行必須系結至程式變數。
偵測到數據指標結尾時,伺服器會自動關閉數據指標。 應用程式仍必須呼叫 SQLCloseCursor 或 SQLFreeStmt(SQL_CLOSE),但驅動程式不需要將關閉要求傳送至伺服器。 這會跨網路儲存往返伺服器。
應用程式會使用驅動程式特定語句屬性SQL_SOPT_SS_CURSOR_OPTIONS來要求快速轉寄數據指標。 當設定為 SQL_CO_FFO時,會啟用快速向前數據指標而不自動擷取。 當設定為 SQL_CO_FFO_AF 時,也會啟用自動擷取選項。 如需自動擷取的詳細資訊,請參閱 搭配ODBC數據指標使用自動擷取。
具有自動擷取的快速向前數據指標可用來擷取只有一個往返伺服器的小結果集。 在這些步驟中, n 是要傳回的數據列數目:
將 [SQL_SOPT_SS_CURSOR_OPTIONS] 設定為 [SQL_CO_FFO_AF]。
將 SQL_ATTR_ROW_ARRAY_SIZE 設定為 n + 1。
將結果數據行系結至 n + 1 元素的陣列(如果實際擷取 n + 1 個數據列,則為安全數據行)。
使用 SQLExecDirect 或 SQLExecute 開啟游標。
如果傳回狀態為SQL_SUCCESS,請呼叫 SQLFreeStmt 或 SQLCloseCursor 以關閉數據指標。 數據列的所有數據都會在系結的程式變數中。
透過這些步驟, SQLExecDirect 或 SQLExecute 會傳送已啟用自動擷取選項的數據指標開啟要求。 在用戶端的單一要求上,伺服器:
開啟游標。
建置結果集,並將數據列傳送至用戶端。
由於數據列集大小設定為 1 大於結果集中的數據列數目,所以伺服器會偵測數據指標結尾並關閉數據指標。