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

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

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

CRecordset, classe

Graphique de la hiérarchie

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

CDBException, classe