SQLSetPos (資料指標程式庫)
重要
Windows 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 Microsoft 建議使用驅動程式的資料指標功能。
本主題討論資料指標程式庫中的 SQLSetPos 函式用法。 如需 SQLSetPos 的 一般資訊,請參閱 SQLSetPos 函式 。
資料指標程式庫僅支援 SQLSetPos 中 Operation 引數的 SQL_POSITION作業。 它只支援 LockType 引數SQL_LOCK_NO_CHANGE 值。
如果驅動程式不支援大量作業,當呼叫 ROWNumber 等於 0 的 SQLSetPos 時 ,資料指標程式庫會傳回 SQLSTATE HYC00 (Driver not support) 。 不建議使用此驅動程式行為。
資料指標程式庫不支援呼叫 SQLSetPos 中的SQL_UPDATE和SQL_DELETE作業。 資料指標程式庫會使用 WHERE 子句建立搜尋的更新或刪除語句,列舉每個綁定資料行快取中儲存的值,藉此實作定點更新或刪除 SQL 語句。 如需詳細資訊,請參閱 處理定點更新和刪除語句 。
如果驅動程式不支援靜態資料指標,則使用資料指標程式庫的應用程式應該只在 SQLExtendedFetch 或 SQLFetchScroll 所 擷取的資料列集上呼叫 SQLSetPos ,而不是 由 SQLFetch 所擷 取。 資料指標程式庫會 藉由在驅動程式中重複呼叫 SQLFetch (資料列集大小為 1)來實作 SQLExtendedFetch 和 SQLFetchScroll 。 資料指標程式庫會將呼叫傳遞至 驅動程式,另一方面會傳遞至 SQLFetch 。 如果 SQLFetch 在驅動程式不支援靜態資料指標時所 擷取的多row 資料列集上呼叫 SQLSetPos ,則呼叫將會失敗,因為 SQLSetPos 不適用於正向資料指標。 即使應用程式已成功呼叫 SQLSetStmtAttr ,將SQL_ATTR_CURSOR_TYPE設定為 SQL_CURSOR_STATIC,即使驅動程式不支援靜態資料指標,也會發生這種情況。