本文件適用於 MFC ODBC 類別。
資料錄集除了可自資料來源選取資料錄外,它還可 (選擇性地) 更新或刪除所選取的資料錄或加入資料錄。 有三個因素可決定資料錄集的可更新性:連接的資料來源是否可更新、您在建立資料錄集物件時所指定的選項和建立的 SQL。
注意事項 |
---|
CRecordset 物件所根據的 SQL 會影響資料錄集的可更新性。例如,若您的 SQL 包含一個聯結或 GROUP BY 子句,MFC 會將可更新性設為 FALSE。 |
注意事項 |
---|
本文件適用於未實作大量資料列擷取的 CRecordset 衍生物件。如果您要使用大量資料列擷取,請參閱資料錄集:擷取大量資料錄 (ODBC)。 |
這個主題說明:
您在資料錄集更新時的角色和架構所提供的功能。
資料錄集是編輯緩衝區和動態集和快照集間的差異性。
資料錄集:AddNew、Edit 和 Delete 的運作方式 (ODBC) 會從資料錄集的觀點來說明這些功能的動作。
資料錄集:更多更新的詳細資訊 (ODBC) 是藉由說明交易如何影響更新、資料錄集的關閉或捲動如何影響更新過程,以及您的更新如何與其他使用者的更新互動,來完成資料錄集更新主題的說明。
您在資料錄集更新時的角色
下表說明您在使用資料錄集加入、編輯或刪除資料錄時所扮演的角色,及架構的功能。
資料錄集更新:您與架構
您 |
架構 |
---|---|
判斷資料來源是否為可更新 (或可附加的)。 |
提供 CDatabase 成員函式來測試資料來源的可更新性或可附加性。 |
開啟一個可更新的資料錄集 (任何型別的)。 |
|
藉由呼叫 CRecordset 內例如 CanUpdate 或 CanAppend 的更新函式,來決定資料錄集是否可更新。 |
|
呼叫資料錄集成員函式來加入、編輯和刪除資料錄。 |
管理在您的資料錄集物件和資料來源間的資料交換機制。 |
選擇性地使用交易來控制更新過程。 |
提供 CDatabase 成員函式來支援交易。 |
如需交易的詳細資訊,請參閱交易 (ODBC)。
編輯緩衝區
將資料錄集內的欄位資料成員集合起來,當做包含一筆資料錄 -- 即目前資料錄的編輯緩衝區。 更新作業會使用這個緩衝區來運作目前資料錄。
當您加入一筆資料錄時,編輯緩衝區會用來建立一筆新資料錄。 當您完成加入資料錄的動作時,先前為目前資料錄的資料錄會再次變為目前資料錄。
當您更新 (編輯) 一筆資料錄時,編輯緩衝區會用來將資料錄集欄位資料成員設為新值。 當您完成更新動作,目前資料錄仍是所更新的資料錄。
當呼叫 AddNew 或 Edit 時,會儲存目前的資料錄,然後在稍後可以視需要還原。 當呼叫 Delete 時,不會儲存目前的資料錄,但會標記為已刪除,您必須捲動至其他的資料錄。
注意事項 |
---|
編輯緩衝區在資料錄刪除時不扮演任何角色。當您刪除目前的資料錄,該資料錄會標記成已刪除,且資料錄集是「不在一筆資料錄上」,直到您捲動至不同的資料錄。 |
動態集和快照集
動態集會在捲動至資料錄時重新整理資料錄的內容。 快照集是資料錄的靜態表示,所以要等到呼叫 Requery 之後,才會重新整理資料錄的內容。 若要使用動態集的所有功能,您必須使用與正確層級的 ODBC API 支援一致的 ODBC 驅動程式。 如需詳細資訊,請參閱 ODBC 和動態集。