CRecordset::Update

通过保存新记录或已编辑的数据完成 AddNewEdit 操作在数据源。

virtual BOOL Update( );

返回值

非零,如果成功更新一个记录;否则0,如果列没有变化。 如果记录不更新,或者,如果多个记录更新,将引发异常。 异常针对数据源的其他故障也会引发异常。

备注

在调用后调用此成员函数为 AddNew编辑 成员函数。 这称为需要完成 AddNewEdit 操作。

备注

如果已实现批量取行,则不能调用 Update。这导致生成失败的断言。虽然选件类 CRecordset 为更新数据批量行不提供框架,使用ODBC API函数 SQLSetPos,可以编写自己的函数。有关批量取行的更多信息,请参见文章 记录集:获取记录(odbc)

AddNewEdit 准备所添加的或编辑的数据将保存到数据源的编辑缓冲区。 Update 保存数据。 以更改标记为或检测的那些字段更新。

如果数据源支持事务,可以使 Update 调用(及其相应的 AddNewEdit 调用)一部分事务。 有关事务的更多信息,请参见文章 事务(odbc)

警告

如果调用 Update,而无需先调用 AddNewEditUpdate 引发 CDBException。如果调用 AddNewEdit,必须调用 Update,在调用 Move 操作之前,或在关闭记录集和数据源连接之前。否则,您的更改将丢失,不会发出通知。

有关处理 Update 失败的详细信息,请参见文章 记录集:如何记录集更新记录(odbc)

异常

此方法会引发类型 **CDBException***的异常。

示例

参见中的文章 事务:在记录集中执行事务(odbc)

要求

Header: afxdb.h

请参见

参考

CRecordset选件类

层次结构图

CRecordset::Edit

CRecordset::AddNew

CRecordset::SetFieldDirty

CDBException选件类