ODBC 靜態資料指標

靜態資料指標是結果集顯示為靜態的資料指標。 開啟資料指標之後,通常不會偵測對結果集成員資格、順序或值所做的變更。 例如,假設靜態資料指標擷取一個資料列,而其他應用程式接著更新該資料列。 如果靜態資料指標重新擷取該資料列,它所看到的值會保持不變,即使其他應用程式已進行變更亦然。

雖然不需要執行這項操作,但靜態資料指標可以偵測自己的更新、刪除和插入。 特定靜態資料指標是否偵測到這些變更,會透過 SQLGetInfo 中的 SQL_STATIC_SENSITIVITY 選項來回報。 靜態資料指標永遠不會偵測到其他更新、刪除和插入。

SQL_ATTR_ROW_STATUS_PTR 陳述式屬性所指定的資料列狀態陣列可以包含任何資料列的 SQL_ROW_SUCCESS、SQL_ROW_SUCCESS_WITH_INFO 或 SQL_ROW_ERROR。 假設資料指標可以偵測這類變更,即會傳回該資料指標所更新、刪除或插入的資料列的 SQL_ROW_UPDATED、SQL_ROW_DELETED 或 SQL_ROW_ADDED。

靜態資料指標的實作,通常是透過鎖定結果集中的資料列,或是建立結果集的複本或快照集。 雖然鎖定資料列相對容易執行,但缺點是會大幅減少並行。 建立複本能允許更大量的並行,如此資料指標也能藉由修改複本來追蹤本身的更新、刪除和插入。 不過建立複本的成本較高,而且可能會在他人變更資料時與基礎資料產生分歧。