Partager via


CRecordset::Delete

Supprime l'enregistrement actif.

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).

[!REMARQUE]

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).

Mise en gardeAttention

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

Cette méthode peut lever des exceptions de type CDBException*.

Exemple

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

Référence

Classe de CRecordset

Graphique de la hiérarchie

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Classe de CDBException