CRecordset::Delete
Supprime l'enregistrement actif.
Syntaxe
virtual void Delete( );
Notes
Après une suppression a réussi, les membres de données de type champ de recordset sont définies à une valeur NULL, et vous devez appeler explicitement une des fonctions de Déplacer pour fermer l'enregistrement supprimé.Une fois que vous quittez l'enregistrement supprimé, il n'est pas possible de retourner à l'.Si la source de données prend en charge les transactions, vous pouvez faire de la place d'appel de Supprimer d'une transaction.Pour plus d'informations, consultez l'article transaction (ODBC).
Notes
Si vous avez implémenté l'extraction de lignes en bloc, vous ne pouvez pas appeler Supprimer.Cela provoquera une assertion.Bien que la classe CRecordset ne fournit pas de mécanisme pour mettre à jour les lignes en bloc de données, vous pouvez écrire vos propres fonctions à l'aide de la fonction API ODBC SQLSetPos.Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article recordset : Extraction globale d'enregistrements (ODBC).
Avertissement
Le recordset doit être modifiable et il doit exister un actuel d'enregistrement valide dans le recordset lorsque vous appelez Supprimer; sinon, une erreur se produit.Par exemple, si vous supprimez un enregistrement mais ne le faites pas par défilement à un nouvel enregistrement avant d'appeler Supprimer de nouveau, Supprimer lève CDBException.
Contrairement à AddNew et de modification, un appel à Supprimer n'est pas suivie par un appel à mise à jour.Si un appel de Supprimer échoue, les membres de données de type champ sont laissées inchangées.
Exceptions
Exception
Condition
Cette méthode peut lever des exceptions de type CDBException*.
Cet exemple montre un recordset créé sur le frame d'une fonction.l'exemple suppose l'existence d' m_dbCust, une variable membre de type CDatabase déjà connectée à la source de données.
// Create a derived CRecordset object
CCustomer rsCustSet(&m_dbCust);
rsCustSet.Open();
if(rsCustSet.IsEOF() || !rsCustSet.CanUpdate() ||
!rsCustSet.CanTransact())
{
return;
}
m_dbCust.BeginTrans();
// Perhaps scroll to a new record...
// Delete the current record
rsCustSet.Delete();
// Finished commands for this transaction
if(IDYES == AfxMessageBox(_T("Commit transaction?"), MB_YESNO))
m_dbCust.CommitTrans();
else // User changed mind
m_dbCust.Rollback();
Configuration requise
Header: afxdb.h
Voir aussi
CRecordset Class
Graphique hiérarchique
CDatabase::BeginTrans
CDatabase::CommitTrans
CDatabase::Rollback
CDBException Class