CDaoRecordset::AddNew

调用该成员函数将新记录添加到一个表类型或动态类型的记录集。

virtual void AddNew( );

备注

记录的字段最初为Null。 (在数据库术语,并不意味着“具有值”并与在C++中 NULL。)若要完成此操作,必须调用 更新 成员函数。 Update 保存到数据源的更改。

警告

如果您编辑记录然后移动到另一个记录,而不调用 Update,您的更改将丢失,而警告。

如果您添加记录到动态类型的记录集通过调用 AddNew,录制会显示在记录集并包括在其变为可见对所有新 CDaoRecordset 对象的基础表中。

新记录的位置取决于记录集的类型:

  • 在一个动态类型的记录集,新记录插入无法保证。 此行为更改与Microsoft Jet 3.0用于性能和并发的用途。 如果您的目标是采用该新添加的记录当前记录、获取上次更新记录的书签和操作对该书签:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • 在索引指定的一个表类型的记录集,记录在其相应的位置返回按排序顺序。 如果索引未指定,新记录返回到记录集末尾。

的当前记录,在您使用了 AddNew 之前保持最新。 如果要使新记录当前,且记录集支持书签,请调用 SetBookmark 到最后一个更新属性设置确定的书签基础DAO记录集对象。 这样做将确定计数器(自动递增)字段的值可用于已添加的记录。 有关更多信息,请参见 GetLastModifiedBookmark

如果数据库支持事务,可以将您的 AddNew 调用的一部分的事务。 有关事务的更多信息,请参见选件类 CDaoWorkspace。 请注意您应在调用 AddNew之前调用 CDaoWorkspace::BeginTrans

调用 打开 成员函数未调用的记录集 AddNew 是非法的。 CDaoException 引发调用,则不能追加的记录集 AddNew。 您可以确定记录集是否通过调用 CanAppend是可更新。

该结构指示已更改的字段数据成员以确保它们到该记录将写入该数据源。DAO记录字段交换(DFX)结构。 更改的值自动字段通常会设置错误该字段,因此,您很少需要调用 SetFieldDirty,但是,有时您可能想确保列将被显式更新或插入无论值在字段数据成员。 DFX framework还使用 PSEUDO NULL。 有关更多信息,请参见 CDaoFieldExchange::m_nOperation

如果不使用双缓冲结构,则将该字段的值不会自动设置字段为"。 在这种情况下,显式设置错误该字段是必需的。 在 m_bCheckCacheForDirtyFields 包含的标志来控制此字段自动检查。

备注

记录双缓冲(即自动字段检查活动),调用 CancelUpdate 将还原设置成员变量设置为值,在 AddNewEdit 调用之前。

有关相关信息,请参见主题“AddNew方法”,“CancelUpdate方法”,“最后一个更新属性”和“EditMode属性” DAO帮助。

要求

Header: afxdao.h

请参见

参考

CDaoRecordset选件类

层次结构图

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact