共用方式為


CRecordset::Edit

允許存取目前資料錄的變更。

virtual void Edit( );

備註

在呼叫 編輯之後,您可以立即重設其值變更的欄位資料成員。 當您在資料來源時,後續的呼叫 更新 成員函式儲存變更作業完成。

注意事項注意事項

如果您已實作大量資料列擷取,就無法呼叫 編輯。這樣會造成失敗的判斷提示。雖然類別 CRecordset 為更新大量資料列不提供一種機制,使用 ODBC API 函式 SQLSetPos,您可以撰寫自己的函式。如需大量資料列擷取的詳細資訊,請參閱本文 資料錄集:擷取大量資料錄 (ODBC)

編輯 儲存資料錄集的資料成員的值。 如果您呼叫 編輯,進行變更,然後再呼叫 編輯 ,資料錄的值將還原為本來就是,在第一個 編輯 呼叫之前。

在某些情況下,您可能需要即可更新資料行空間 (包含資料)。 若要這麼做,請呼叫 參數的 SetFieldNull 標示欄位,則為 null。這也會導致這個資料行的更新。 如果您要讓欄位提供資料來源所撰寫,即使它的值沒有變更,請呼叫 參數的 SetFieldDirty 。 這個方式,即使欄位的值為 null。

如果資料來源支援交易,您可以 編輯 呼叫部分交易。 請注意您應該在呼叫之前呼叫 編輯CDatabase::BeginTrans ,並在連接開啟之後,資料錄集。 同時也請注意呼叫的 CDatabase::CommitTrans 這並不是呼叫 更新 的替代項目 編輯 完成作業。 如需交易的詳細資訊,請參閱類別 CDatabase

根據目前鎖定模式,更新的資料錄可能由 編輯 鎖定,直到您呼叫 更新 或捲動至其他的資料錄,在 編輯 呼叫期間,或者它可能只鎖定。 您可以變更與 SetLockingMode的鎖定模式。

目前資料錄的還原先前的值,如果您捲動至一筆新資料錄在呼叫 更新之前。 CDBException 擲回,如果您呼叫無法更新的資料錄集的 編輯 ,或者沒有目前資料錄。

如需詳細資訊,請參閱 Microsoft 知識庫文件 交易 (ODBC)資料錄集:鎖定資料錄 (ODBC)

例外狀況

這個方法會擲回型別 CDBException* 和 **CMemoryException***的例外狀況。

範例

// To edit a record, first set up the edit buffer
rsCustSet.Edit();

// Then edit field data members for the record
rsCustSet.m_BillingID = 2795;
rsCustSet.m_ContactFirstName = _T("Jones Mfg");

// Finally, complete the operation
if(!rsCustSet.Update())
{
    // Handle the failure to update
    AfxMessageBox(_T("Couldn't update record!"));
}

需求

Header: afxdb.h

請參閱

參考

CRecordset 類別

階層架構圖

CRecordset::Update

CRecordset::AddNew

CRecordset::Delete

CRecordset::SetFieldDirty

CRecordset::SetFieldNull

CRecordset::CanUpdate

CRecordset::CanTransact

CRecordset::SetLockingMode