可捲動的資料指標

在新式螢幕型應用程式中,使用者會前後捲動資料。 在這類應用程式中,如何返回先前擷取的資料列是一大問題。 有一種可能的做法,即是關閉資料指標再重新開啟,然後擷取資料列,直到資料指標到達所需的資料列為止。 另一種可能的作法是讀取結果集,在本機快取結果集,然後在應用程式中實作捲動。 這兩種做法都只適用於小型結果集,且後者相當難以實作。 更好的解決方案是使用「可捲動資料指標」,以便在結果集中前後移動。

「可捲動資料指標」通常用於使用者會來回捲動資料的新式螢幕型應用程式中。 不過,只有在順向資料指標效果不彰時,才建議應用程式使用可捲動資料指標,因為後者通常比前者昂貴。

向後移動的功能會引發順向資料指標不會遇到的問題:可捲動資料指標是否應該偵測對先前擷取的資料列所做的變更? 換句話說,是否應偵測已更新、已刪除和新插入的資料列?

這個問題之所以會發生,是因為結果集的定義 (符合特定標準的資料列集) 在確認資料列是否符合標準時,不會表明資料列的檢查時間,也不會指出資料列每次受到擷取時是否必須包含相同的資料。 前一種省略的狀況,讓可捲動資料指標能夠偵測是否已插入或刪除資料列;後者則讓可捲動資料指標得以偵測更新的資料。

偵測變更的功能有時很實用,有時則不然。 舉例來說,會計應用程式的資料指標必須忽略所有變更;如果資料指標顯示最新的變更,便無法平衡收支。 另一方面,航班預訂系統使用的資料指標必須顯示資料的最新變更;如果沒有這類資料指標,系統就必須不斷重新查詢資料庫,以顯示最新航班機位預訂情況。

為了滿足不同應用程式的需求,ODBC 定義了四種可捲動資料指標, 每一種的費用和結果集變更偵測功能各不相同。 請注意,若可捲動資料指標能夠偵測資料列變更,則只有在嘗試重新擷取變更過的資料列時,才能偵測到這些資料列的變更,資料來源不可能通知資料指標目前擷取的資料列有所變更。 另外還有一點需要留意,變更的可見度也是由交易隔離等級控制。如需詳細資料,請參閱交易隔離

此章節包含下列主題。