Compartilhar via


CRecordset::Delete

 

Publicado: abril de 2016

Exclui o registro atual.

Sintaxe

virtual void Delete( );

Comentários

Depois de uma exclusão com êxito, os membros de dados do campo do conjunto de registros são definidos como um valor nulo, e você deve explicitamente chamar uma das funções de Mover para mover fora do registro excluído.  Uma vez que você se move para fora do registro excluído, não é possível retornar-lhe.  Se a fonte de dados suportar transações, você pode fazer a parte da chamada de Excluir de uma transação.  Para obter mais informações, consulte o artigo transação (ODBC).  

Dica

Se você tiver implementado a linha em massa que pesquisa, você não pode chamar Excluir.  Isso resultará em uma declaração falha.  Embora a classe CRecordset não fornece um mecanismo para atualizar linhas em massa de dados, você pode escrever suas próprias funções usando a função da API SQLSetPosODBC.  Para obter mais informações sobre a linha em massa que pesquisa, consulte o artigo conjunto de registros: Para buscar registros em massa (ODBC).  

Aviso

O conjunto de registros deve ser atualizável e deve haver uma corrente válido no registro do conjunto de registros quando você chama Excluir; caso contrário, ocorrerá um erro.  Por exemplo, se você excluir um registro mas não o colocar um novo registro antes de chamar Excluir novamente, Excluir gera CDBException.  

A o contrário de AddNew e de Editar, uma chamada a Excluir não é seguido por uma chamada a Atualizar.  Se uma chamada de Excluir falhar, os membros de dados do campo são deixados inalterados.  

Exceções

Exception

Condition

Esse método pode lançar exceções do tipo CDBException*.

Exemplo

Este exemplo mostra um recordset criado no quadro de uma função.  O exemplo assume a existência de m_dbCust, um variável de membro de tipo CDatabase já conectado à fonte de dados.  

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

Requisitos

Cabeçalho: afxdb.h

Consulte também

Classe de CRecordset
Gráfico da hierarquia
CDatabase::BeginTrans
CDatabase::CommitTrans
CDatabase::Rollback
Classe de CDBException