Compartilhar via


CRecordset::Delete

Exclui o registro atual.

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

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

Referência

Classe CRecordset

Gráfico da hierarquia

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

Classe CDBException