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