术语 | CRecordset::Delete |
释义 | CRecordset::Delete virtual void Delete(); throw(CDBException); 说明: 此成员函数用来删除当前记录。在成功删除之后,此记录集的字段数据成员被设置为NULL值,并且应用程序必须显式地调用一个Move函数来移走所删除的记录。一旦移走了被删除的记录,就不能再恢复它。如果数据源支持事务,则可以使Delete调用成为一次事务的一部分。 注意: 如果你已经实现了成组读取,则不能调用Delete。这会导致一个失败断言。虽然类CRecordset不提供用于更新成组数据行的机制,但是你可以使用ODBC API函数SQLSetPos来编写你自己的函数。有关如何做到这一点的例子,请参见DBEFETCH示例。 警告: 当你调用Delete时,记录集必须被更新,并且当前在记录集中必须有有效的记录;否则将发生错误。例如,如果你删除了一个记录,但是在你再次调用Delete之前没有滚动到一个新的记录,则Delete会抛出一个CDBException。与AddNew和Edit不同,Delete调用后不跟Update调用。如果Delete调用失败,字段数据成员将保持不变。 示例: 这个例子说明了如何在一个函数框架上创建一个记录集。该例子假定m_dbCust存在,一个CDatabase类型的成员变量已经连接到数据源上。 // 创建一个派生的CRecordset对象 CCustSet rsCustSet( &m_dbCust ); rsCustSet.Open( ); if( rsCustSet.IsEOF() || !rsCustSet.CanUpdate() || !rsCustSet.CanTransact() ) return; if( !m_dbCust.BeginTrans( ) ) { // Do something to handle a failure } else { // Perhaps scroll to a new record ... // Delete the current record rsCustSet.Delete( ); // ... // Finished commands for this transaction if( m_dbCust.CommitTrans( ); else // User changed mind m_dbCust.Rollback( ); } // ... 请参阅: CDatabase::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException |
随便看 |
|
MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。