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