快照式
快照集是一個記錄集,反映資料在建立快照集時存在的靜態檢視。 當您開啟快照集並移至所有記錄時,它所包含的記錄集及其值不會變更,直到您呼叫 Requery
來重建快照集為止。
注意
本主題適用於 MFC ODBC 類別。 如果您使用 MFC DAO 類別而非 MFC ODBC 類別,請參閱 CDaoRecordset::Open 以取得快照集類型記錄集的描述。
您可以使用資料庫類別建立可更新或唯讀的快照集。 不同于動態集,可更新的快照集不會反映對其他使用者所做記錄值的變更,但會反映程式所做的更新和刪除。 在您呼叫 Requery
之前,新增至快照集的記錄不會對快照集顯示。
提示
快照集是 ODBC 靜態資料指標。 在您捲動至該記錄之前,靜態資料指標實際上不會取得資料列。 為了確保會立即擷取所有記錄,您可以捲動至記錄集的結尾,然後捲動至您想要查看的第一筆記錄。 不過請注意,捲動到結尾需要額外的額外負荷,而且可能會降低效能。
當您需要在作業期間保留資料時,快照集最有價值,就像您產生報表或執行計算一樣。 即便如此,資料來源也可以大幅偏離快照集,因此您可能會想要不時重建它。
快照集支援是以 ODBC 資料指標程式庫為基礎,它提供任何 Level 1 驅動程式的靜態資料指標和定點更新(需要可更新性)。 資料指標程式庫 DLL 必須載入記憶體中,才能支援此支援。 當您建構 CDatabase
物件並呼叫其 OpenEx
成員函式時,您必須指定 CDatabase::useCursorLib
dwOptions 參數的選項 。 如果您呼叫 Open
成員函式,預設會載入資料指標程式庫。 如果您使用動態集而非快照集,則不想讓資料指標程式庫載入。
只有在建構物件時或您使用的 ODBC 驅動程式支援靜態資料指標時 CDatabase
,才可使用快照集。
注意
對於某些 ODBC 驅動程式,快照集(靜態資料指標)可能無法更新。 請查看驅動程式檔,以取得支援的資料指標類型,以及其支援的並行類型。 若要保證可更新的快照集,請務必在建立 CDatabase
物件時將游標程式庫載入記憶體中。 如需詳細資訊,請參閱 ODBC:ODBC 資料指標程式庫 。
注意
如果您想要同時使用快照集和動態集,您必須以兩個不同的 CDatabase
物件為基礎(兩個不同的連接)。
如需屬性快照集與所有記錄集共用的詳細資訊,請參閱 Recordset (ODBC) 。 如需 ODBC 和快照集的詳細資訊,包括 ODBC 資料指標程式庫,請參閱 ODBC 。