Virtual void Eliminare ( );
gettare ( CDBException );
Osservazioni
Chiamare questa funzione membro per eliminare il record corrente. Dopo il successo cancellazione, membri dati di campo del recordset sono impostati su un valore Null, e deve chiamare in modo esplicito una delle funzioni di muoversi in modo da spostare fuori record eliminato. Una volta che si sposta fuori record eliminato, non č possibile restituire ad essa. Se l'origine dati supporta le transazioni, č possibile rendere il Delete chiamare parte di una transazione. Per ulteriori informazioni, vedere l'articolo Transazione (ODBC) nel manuale del programmatore di Visual C++.
&Notanbsp; Se č stato implementato il recupero di massa di righe, č possibile chiamare eliminare. Questo si tradurrā in un'asserzione non riuscita. Sebbene la classe CRecordset non fornisce un meccanismo per l'aggiornamento di massa di righe di dati, č possibile scrivere funzioni personalizzate utilizzando la funzione API ODBC SQLSetPos. Per un esempio di come eseguire questa operazione, vedere l'esempio DBFETCH. Per ulteriori informazioni sul recupero di massa di righe, vedere l'articolo Recordset: recupero Records in Bulk (ODBC) nel manuale del programmatore di Visual C++.
Cautela Il recordset deve essere aggiornabile e ci deve essere un record valido nel recordset corrente quando si chiama eliminare; in caso contrario, si verifica un errore. Ad esempio, se eliminare un record, ma non scorrere a un nuovo record prima di chiamare eliminare ancora una volta, Delete genera un CDBException.
A differenza di AddNew e modificare, una chiamata a eliminare non č seguita da una chiamata a Update. Se una chiamata Delete non riesce, i dati del campo membri sono lasciati invariati.
Esempio
In questo esempio viene illustrato un recordset creato sul telaio di una funzione. Nell'esempio si presuppone l'esistenza di m_dbCust , una variabile membro di tipo CDatabase giā collegata all'origine dati.
/ / Crea un oggetto CRecordset derivato
CCustSet rsCustSet (amp; m_dbCust);
rsCustSet.Open ();
Se ((rsCustSet.IsEOF) | |! (rsCustSet.CanUpdate) | |
! rsCustSet.CanTransact ())
ritorno;
Se (! m_dbCust.BeginTrans ())
{
/ / Fare qualcosa per gestire un fallimento
}
altro
{
/ / Scroll forse a un nuovo record...
/ / Eliminare il record corrente
rsCustSet.Delete ();
// ...
/ / Finito i comandi per questa transazione
Se (< l'utente conferma della transazione >)
m_dbCust.CommitTrans ();
altro / / utente cambiato idea
m_dbCust.Rollback ();
}
//
Pa&noramica CRecordset |nbsp; Membri della classe | Gerarchia Chart
Vedere a&nchenbsp;Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException