CDaoRecordset::Edit

调用该成员函数允许访问当前记录的更改。

virtual void Edit( );

备注

一旦调用 Edit 成员函数所做的更改,对当前记录的字段复制到复制缓冲区。 在对该记录后所需的更改,请调用 Update 保存更改。 Edit 保存记录集的数据成员的值。 如果调用 Edit,进行更改,则再次调用 Edit,记录的值被还原到什么是,在第一 Edit 调用之前。

警告

如果您编辑记录然后执行移动到另一个记录,而无需先调用的 Update的任何操作,您的更改将丢失,而警告。此外,因此,如果关闭记录集或父数据库,要编辑的记录被放弃,而警告。

有时,您可能需要通过使并更新列(包含数据)。 为此,请调用与 TRUE 参数的 SetFieldNull 标记字段Null;还会导致列更新。 如果希望字段被写入数据源。,即使其值尚未更改,请调用与 TRUE参数的 SetFieldDirty。 可以这样做,即使该字段的值Null。

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

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

当记录集对象在多用户环境中保守式地被锁定,记录保持锁定从时 Edit 使用,直到更新完成的。 如果记录集开放式被锁定,该记录锁定和比较已预编辑的记录,它将在数据库中之前更新。 如果该记录已更改,在您调用 EditUpdate 操作失败,并且MFC引发异常。 您可以更改与 SetLockingMode的锁定模式。

备注

开放式锁定外部数据库格式始终使用,如ODBC和可安装的ISAM。

在调用 Edit之后,当前记录保持最新。 调用 Edit,必须有一个当前记录。 如果没有当前记录,或者记录集不引用打开表类型或动态类型的记录集对象,则会发生异常。 调用 Edit 导致 CDaoException 在以下情况下引发:

  • 没有当前记录。

  • 数据库或记录集是只读的。

  • 在记录中的字段不可更新。

  • 数据库或记录集中打开为独占使用由其他用户。

  • 其他用户锁定的包含您的记录的页。

如果数据源支持事务,可以使 Edit 调用的一部分的事务。 请注意您应在调用 Edit 之前调用 CDaoWorkspace::BeginTrans,因此,在打开后记录集。 另外请注意调用 CDaoWorkspace::CommitTrans 的这不是调用 Update 备用项完成 Edit 操作。 有关事务的更多信息,请参见选件类 CDaoWorkspace

有关相关信息,请参见主题“AddNew方法”,“编辑方法”,“删除方法”,“update方法”和“可更新的属性设置为” DAO帮助。

要求

Header: afxdao.h

请参见

参考

CDaoRecordset Class

层次结构图

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update