共用方式為


資料錄集:資料錄集更新資料錄的方式 (ODBC)

本主題適用於 MFC ODBC 類別。

除了能夠從數據源選取記錄之外,記錄集還可以更新或刪除選取的記錄,或新增記錄。 三個因素決定記錄集的可更新性:連接數據源是否可更新、建立記錄集物件時所指定的選項,以及所建立的 SQL。

注意

對象 CRecordset 所依據的 SQL 可能會影響記錄集的可更新性。 例如,如果您的 SQL 包含聯結或 GROUP BY 子句,MFC 會將可更新性設定為 FALSE。

注意

本主題適用於衍生自 CRecordset 的物件,其中尚未實作大量資料列擷取。 如果您使用大量資料列擷取,請參閱 記錄集:大量擷取記錄 (ODBC)

本主題將說明:

記錄集:AddNew、Edit 和 Delete Work (ODBC) 如何從記錄集的觀點描述這些函式的動作。

記錄集:深入瞭解更新 (ODBC) 會說明交易如何影響更新、關閉記錄集或卷動如何影響進行中的更新,以及更新如何與其他使用者的更新互動,以完成記錄集更新案例。

您在 Recordset 更新中的角色

下表顯示您在使用記錄集新增、編輯或刪除記錄的角色,以及架構為您所做的工作。

記錄集更新:您和架構

架構
判斷數據源是否可更新(或可附加)。 提供 CDatabase 成員函式,以測試數據源的可更新性或附加性。
開啟可更新的記錄集(任何類型)。
呼叫 CRecordsetCanAppendCanUpdate更新函式,判斷記錄集是否可更新。
呼叫記錄集成員函式以新增、編輯和刪除記錄。 管理記錄集物件與數據源之間交換數據的機制。
或者,使用交易來控制更新程式。 CDatabase提供成員函式以支援交易。

如需交易的詳細資訊,請參閱 交易 (ODBC)

編輯緩衝區

以集體方式取得,記錄集的欄位數據成員會做為包含一筆記錄的編輯緩衝區,也就是當前記錄。 更新作業會使用此緩衝區在當前記錄上運作。

  • 當您新增記錄時,會使用編輯緩衝區來建置新的記錄。 當您完成新增記錄時,先前目前的記錄會再次變成目前的記錄。

  • 當您更新 (edit) 記錄時,會使用編輯緩衝區,將記錄集的欄位資料成員設定為新的值。 當您完成更新時,更新的記錄仍然是最新的。

當您呼叫 AddNewEdit 時,會儲存目前的記錄,以便稍後視需要還原。 當您呼叫 Delete 時,目前的記錄不會儲存,但標示為已刪除,而且您必須捲動至另一筆記錄。

注意

編輯緩衝區不會在記錄刪除中扮演任何角色。 當您刪除當前記錄時,記錄會標示為已刪除,而且記錄集在您捲動至不同的記錄之前「不在記錄上」。

動態集和快照集

動態集會 在您捲動至記錄時重新整理記錄的內容。 快照集是記錄的靜態表示法,因此除非您呼叫 Requery,否則不會重新整理記錄的內容。 若要使用動態集的所有功能,您必須使用符合正確 ODBC API 支援的 ODBC 驅動程式。 如需詳細資訊,請參閱 ODBCDynaset

另請參閱

資料錄集 (ODBC)
資料錄集:AddNew、Edit 和 Delete 的運作方式 (ODBC)