virtuel void Supprimer ( );
jeter ( CDBException );
Remarques
Appelez cette fonction membre pour supprimer l'enregistrement en cours. Après une suppression réussie, les données membres de champ du jeu d'enregistrements sont définies sur une valeur Null, et vous devez appeler explicitement l'une des fonctions de se déplacer pour aller au large de l'enregistrement supprimé. Une fois que vous déplacez l'enregistrement supprimé, il n'est pas possible de revenir. Si la source de données prend en charge les transactions, vous pouvez faire la Supprimer composez le cadre d'une transaction. Pour plus d'informations, consultez l'article Transaction ((ODBC)) dans le Guide du programmeur Visual C++.
&Notenbsp ; Si vous avez implémenté d'extraction de lignes en bloc, vous ne pouvez pas appeler Delete. Cela se traduira par une Échec assertion. Bien que la classe CRecordset ne fournit pas un mécanisme de mise à jour de lignes en bloc de données, vous pouvez écrire vos propres fonctions en utilisant la fonction API ODBC SQLSetPos. Pour obtenir un exemple de comment procéder, consultez l'exemple DBFETCH. Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article jeu d'enregistrements : extraction de dossiers en vrac (ODBC) dans le Guide du programmeur Visual C++.
Prude&ncenbsp ; Le jeu d'enregistrements doit être modifiable et il doit y avoir un enregistrement valide dans le jeu d'enregistrements lorsque vous appelez Delete; sinon, une erreur se produit. Par exemple, si vous supprimez un enregistrement, mais défile pas à un nouvel enregistrement avant de vous appeler Supprimer encore une fois Supprimer lève une exception CDBException.
Contrairement à AddNew et Edit, un appel à Delete n'est pas suivi par un appel à la mise à jour. Si un appel de Delete échoue, les données du champ membres restent inchangés.
Exemple
Cet exemple montre un objet recordset créé à l'image d'une fonction. L'exemple suppose l'existence de m_dbCust , une variable membre de type CDatabase déjà connectée à la source de données.
/ / Créer un objet CRecordset dérivé
CCustSet rsCustSet (amp ; m_dbCust) ;
rsCustSet.Open () ;
Si (rsCustSet.IsEOF () ||! rsCustSet.CanUpdate () ||
! rsCustSet.CanTransact ())
retour ;
Si (! m_dbCust.BeginTrans ())
{
/ / Faire quelque chose pour gérer une rupture
}
autre
{
/ / Peut-être accéder à un nouveau record...
/ / Supprimer l'enregistrement en cours
rsCustSet.Delete () ;
// ...
/ / Fini les commandes pour cette transaction
Si (< l'utilisateur confirme la transaction >)
m_dbCust.CommitTrans () ;
Else / / l'utilisateur a changé d'avis
m_dbCust.Rollback () ;
}
//
Aperçu de CRecordset |  ; Membres de la classe | Graphique de la hiérarchie
Voir aussi  ;Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException