CRecordset::Delete

Elimina il record corrente.

virtual void Delete( );

Note

Dopo una corrispondenza eliminazione, i membri dati di campo del recordset siano impostati su un valore null ed è necessario chiamare in modo esplicito una delle funzioni Sposta per spostarsi dal record eliminato.Una volta che si uscirà dal record eliminato, non è possibile tornare a.Se l'origine dati supporta le transazioni, è possibile fare parte della chiamata Elimina di una transazione.Per ulteriori informazioni, vedere l'articolo transazione (ODBC).

[!NOTA]

Se si è implementato il recupero di massa di righe, non è possibile chiamare Elimina.Questa opzione determinerà una asserzione non riuscita.Sebbene la classe CRecordset non fornire un meccanismo per l'aggiornamento di massa di righe di dati, è possibile scrivere funzioni personalizzate utilizzando la funzione API ODBC SQLSetPos.Per ulteriori informazioni sul recupero di massa di righe, vedere l'articolo recordset: Recupero di massa di record (ODBC).

Nota di avvisoAttenzione

Il recordset sia aggiornabile e deve essere una valida record corrente nel recordset quando si chiama Elimina; in caso contrario, si verifica un errore.Ad esempio, se si elimina un record ma non si scorre un nuovo record prima di chiamare nuovamente Elimina, Elimina generato CDBException.

A differenza AddNew e Modifica, una chiamata a Elimina non è seguita da una chiamata a Aggiorna.Se una chiamata Elimina non riesce, i membri dati di campo vengono lasciati invariati.

Eccezioni

Questo metodo può generare eccezioni di tipo CDBException*.

Esempio

In questo esempio viene mostrato un recordset creato sul frame di una funzione.Nell'esempio si presuppone l'esistenza m_dbCust, una variabile membro di tipo CDatabase già connesso all'origine dati.

// 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();

Requisiti

Header: afxdb.h

Vedere anche

Riferimenti

Classe di CRecordset

Grafico della gerarchia

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Classe di CDBException