CRecordset::Update
通过保存新记录或已编辑的数据完成 AddNew 或 Edit 操作在数据源。
virtual BOOL Update( );
返回值
非零,如果成功更新一个记录;否则0,如果列没有变化。 如果记录不更新,或者,如果多个记录更新,将引发异常。 异常针对数据源的其他故障也会引发异常。
备注
在调用后调用此成员函数为 AddNew 或 编辑 成员函数。 这称为需要完成 AddNew 或 Edit 操作。
备注
如果已实现批量取行,则不能调用 Update。这导致生成失败的断言。虽然选件类 CRecordset 为更新数据批量行不提供框架,使用ODBC API函数 SQLSetPos,可以编写自己的函数。有关批量取行的更多信息,请参见文章 记录集:获取记录(odbc)。
AddNew 和 Edit 准备所添加的或编辑的数据将保存到数据源的编辑缓冲区。 Update 保存数据。 以更改标记为或检测的那些字段更新。
如果数据源支持事务,可以使 Update 调用(及其相应的 AddNew 或 Edit 调用)一部分事务。 有关事务的更多信息,请参见文章 事务(odbc)。
警告
如果调用 Update,而无需先调用 AddNew 或 Edit,Update 引发 CDBException。如果调用 AddNew 或 Edit,必须调用 Update,在调用 Move 操作之前,或在关闭记录集和数据源连接之前。否则,您的更改将丢失,不会发出通知。
有关处理 Update 失败的详细信息,请参见文章 记录集:如何记录集更新记录(odbc)。
异常
此方法会引发类型 **CDBException***的异常。
示例
参见中的文章 事务:在记录集中执行事务(odbc)。
要求
Header: afxdb.h