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).
Observação |
---|
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). |
Cuidado |
---|
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