共用方式為


CDaoRecordset::AddNew

呼叫此成員函式以加入新資料錄加入至資料表之或動態集類型的資料錄集。

virtual void AddNew( );

備註

資料錄的欄位一開始是空的。 (在資料庫詞彙中, null 不代表「具有值」並不會與您在 C++ 中 NULL )。若要完成此作業,您必須呼叫 更新 成員函式。 更新 儲存對資料來源的變更。

警告

如果您編輯資料錄會移動至其他資料錄,而不呼叫 更新,您所做的變更將會遺失,而不需警告。

如果您加入一筆資料錄加入至動態集類型的資料錄集藉由呼叫 AddNew,該資料錄會顯示在資料錄集並包含在才可以看到至所有新 CDaoRecordset 物件的基礎資料表中。

新資料錄的位置取決於資料錄集類型:

  • 在一個動態集類型的資料錄集,新資料錄插入不保證。 這個行為會隨著 Microsoft Jet 3.0 針對效能和並行的用途。 如果您的目標是要讓這個新加入的資料錄目前資料錄,請取得上次更新資料錄的書籤並移至該書籤:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • 在指定索引的資料表) 的資料錄集時,都會在其排序次序的適當位置傳回。 如果未指定索引,新資料錄傳回資料錄集的結尾。

目前的資料錄,在您使用 AddNew 之前保持最新。 如果您要讓新的資料錄,且目前的資料錄集支援書籤,為上一次更新屬性設定會決定的書籤的呼叫 SetBookmark 基礎 ADO 資料錄集物件。 這樣做會判斷計數器 (自動遞增) 欄位的值適用於一個加入的資料錄。 如需詳細資訊,請參閱 GetLastModifiedBookmark

如果資料庫支援交易,您可以使 AddNew 呼叫部分交易。 如需交易的詳細資訊,請參閱類別 CDaoWorkspace。 請注意您應該在呼叫之前呼叫 AddNewCDaoWorkspace::BeginTrans

呼叫成員函式 開啟 尚未呼叫資料錄集的 AddNew 是不合法的。 CDaoException 擲回,如果您呼叫無法附加的資料錄集的 AddNew 。 您可以判斷資料錄集是否已呼叫 CanAppend是可更新的。

確保他們的框架標記已變更的欄位資料成員至資料錄中寫入資料來源是由 DAO 資料錄欄位交換 (DFX) 機制。 變更值會自動] 欄位通常成員設定記錄變更的欄位,因此,您很少需要呼叫 SetFieldDirty ,不過,您可能會想要確保資料行會明確更新或插入的值為何在欄位資料成員。 DFX 機制也使用 PSEUDO NULL。 如需詳細資訊,請參閱 CDaoFieldExchange::m_nOperation

如果未使用雙重緩衝機制,則會變更欄位的值不會自動設定欄位標記為已變更。 在這個案例中,明確設定記錄變更的欄位會是必要的。 在 m_bCheckCacheForDirtyFields 包含的旗標會控制這個自動欄位檢查。

注意事項注意事項

資料錄雙重緩衝 (也就是自動欄位檢查有效),呼叫 CancelUpdate 將還原到它們所具有的成員變數的值,在 AddNew編輯 呼叫之前。

如需相關資訊,請參閱主題「AddNew 方法」, CancelUpdate 方法」,最後更新屬性」和「EditMode 屬性」DAO 說明。

需求

Header: afxdao.h

請參閱

參考

CDaoRecordset 類別

階層架構圖

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact