共用方式為


什麼是資料指標?

關聯式資料庫中的作業會針對完整的資料列集運作。 由 SELECT 陳述式所傳回的資料列集包括所有滿足陳述式 WHERE 子句之條件的資料列。 由陳述式傳回的完整資料列稱為結果集。 應用程式 (尤其是互動式及線上應用程式) 不一定能夠以一個單位有效地運用整個結果集。 這些應用程式需要一個機制,一次運用一個資料列或小型資料列區塊。 資料指標就是一種結果集的擴充,提供此種機制。

資料指標是由資料指標程式庫實作。 資料指標程式庫這種軟體,在實作時通常是資料庫系統或資料存取 API 的一部分,可用來管理從資料來源 (結果集) 傳回的資料屬性。 這些屬性包括並行管理、結果集的位置、傳回的資料列數目,以及您是否可以透過結果集向前或向後 (或兩者皆可) 移動 (可捲動性)。

資料指標會追蹤結果集的位置,可讓您針對結果集逐列執行多項作業,無論是否回到原始資料表皆可進行。 換句話說,資料指標在概念上會根據資料庫中的資料表傳回結果集。 資料指標代表結果集的目前位置,因而以此命名,就像電腦畫面上表示目前位置的游標一樣。

請務必先熟悉資料指標的概念,再繼續學習其在 ADO 中的使用方式。

使用資料指標時,您可以:

  • 指定置放於結果集的特定資料列。

  • 根據目前的結果集位置擷取一個資料列或資料列區塊。

  • 修改結果集目前位置上的資料列資料。

  • 定義其他使用者對資料變更的不同敏感度等級。

例如,假設應用程式能向潛在購買者顯示可用的產品清單。 購買者會捲動清單查看產品詳細資料和成本,最後選取要購買的產品。 清單其餘部分會發生額外的捲動和選取操作。 就購買者而言,一次只會出現一個產品,但應用程式會使用可捲動的資料指標來向上和向下瀏覽結果集。

您可以透過各種方式使用資料指標:

  • 完全不使用資料列。

  • 使用單一資料表的部分或所有資料列。

  • 使用邏輯聯結資料表的部分或所有資料列。

  • 在資料指標或欄位等級上為唯讀或可更新。

  • 僅限順向或可完整捲動。

  • 使用位於伺服器上的資料指標索引鍵集。

  • 受其他應用程式導致的基礎資料表變更影響 (如會員資格、排序、插入、更新和刪除)。

  • 存在於伺服器或用戶端上。

唯讀資料指標可協助使用者瀏覽結果集,而讀取/寫入資料指標則可以實作個別的資料列更新。 您可以使用指回基底資料表資料列的索引鍵集來定義複雜的資料指標。 雖然有些資料指標順向時為唯讀,但其他資料指標可以來回移動,並根據其他應用程式對資料庫所做的變更,提供結果集的動態重新整理。

並非所有應用程式都需要使用資料指標來存取或更新資料。 部分查詢不需要使用資料指標來直接更新資料列。 資料指標應是您擷取資料所選擇的最後手段之一,然後您應盡量選擇帶來最少影響的資料指標。 您使用預存程序建立結果集時,無法使用資料指標編輯或更新方法來更新結果集。

並行

在部分多使用者應用程式中,務必要盡量將最新資料呈現給終端使用者。 航空公司訂票系統就是這類系統的典型範例,許多使用者可能會爭相選購指定航班上的相同座位 (因此為單一記錄)。 在這種情況下,應用程式設計必須處理單一記錄的並行作業。

在其他類型的應用程式中,並行並沒有那麼重要。 在這種情況下,為了隨時保留最新資料而增加成本就不太合理。

Position

資料指標也可追蹤結果集的目前位置。 請將資料指標位置視為目前記錄的指標,這種情況與陣列索引指向陣列中特定位置的值相似。

可捲動性

應用程式採用的資料指標類型也會影響在結果集資料列中前後移動的能力;這有時稱為「可捲動性」。 在結果集中向前向後移動的能力會增加資料指標的複雜度,因此實作成本更高。 因此,您應該在必要時才使用具有此功能的資料指標。