CRecordset::Update

virtual BOOL Update();
  throw ( CDBException );

返回值:
如果一个记录更新成功则返回一个非零值;否则如果没有列改变,则返回值为零。如果没有记录被更新,或有多个记录被更新,则抛出一个异常。对数据源上的其它任何失败也都将抛出一个异常。

说明:
在调用AddNew或Edit成员函数之后,调用Update成员函数,必须用该调用来完成AddNew或Edit操作。
注意:
如果你已经实现了成组行检取,你就不能调用Update。这将导致一个异常。虽然类CRecordset不提供更新成组行数据的机制,但是你可以提供使用ODBC API函数SQLSetPos来编写你自己的函数。如何做到这一点,请参见例子DBFETCH。
AddNew或Edit都准备了一个编辑缓冲区,被增加或被编辑的数据都放在此缓冲区中,等待存入数据源中。Update保存这些数据。只有标记为或检测为被修改了的那些字段才被更新。
如果数据源支持事务,你可以使Update调用(以及它的相应的AddNew或Edit调用)成为事务的一部分。
警告:
如果你没有先调用AddNew或Edit函数就调用Update函数,则Update函数将抛出一个异常。如果应用程序调用AddNew或Edit,则在调用MoveNext之前,或改变记录集或数据源之前,必须调用Update函数。否则,所做的改变将丢失,并且不给出通知。

请参阅:
CRecordset::Edit, CRecordset::AddNew, CRecordset::SetFieldDirty, CDBException