Compartilhar via


CRecordset::edição

Permite que as alterações a registro corrente.

virtual void Edit( );

Comentários

Depois que você telefonar edição, você pode alterar os membros de dados do campo, redefinindo seus valores diretamente.A operação será concluída quando você subseqüentemente telefonar o Atualizaçãofunção de membro para salvar as alterações na fonte de dados.

Observação:

Se você implementou a busca de linha em massa, você não poderá telefonar edição.Isso resultará em uma declaração com falha.Embora a classe CRecordset não fornece um mecanismo para a atualização em massa linhas de dados, você pode gravar suas próprias funções utilizando a função de API do ODBC SQLSetPos.Para obter mais informações sobre buscar a linha em massa, consulte o artigo conjunto de registros: Buscando os registros em massa (ODBC).

edição salva os valores dos membros de dados do conjunto de registros.Se você chamar edição, faça as alterações e, em seguida, chamar edição novamente, os valores do registro são restauradas para como eram antes do primeiro edição telefonar.

Em alguns casos, convém atualizar uma coluna, tornando-nulo (contendo sem dados).Para fazer isso, telefonar SetFieldNull com um parâmetro de TRUE para marcar o campo nulo; isso também faz com que a coluna a ser atualizada.Se você quiser que um campo a serem gravados para a fonte de dados, mesmo que seu valor não mudou, telefonar SetFieldDirty com um parâmetro de TRUE.Isso funciona mesmo se o campo tiver o valor nulo.

Se a fonte de dados oferece suporte a transações, você poderá tornar o edição telefonar parte de uma transação.Observe que você deve telefonar CDatabase::BeginTrans antes telefonar ndo edição e depois que o conjunto de registros foi aberto.Observe também que chamada CDatabase::CommitTrans não é um substituto para chamar Atualização para concluir o edição operação.Para obter mais informações sobre transações, consulte classe CDatabase.

Dependendo do modo de bloqueio corrente do registro sendo atualizado pode estar bloqueado por edição até telefonar Atualização ou role para outro registro, ou pode estar bloqueado somente durante o edição telefonar.Você pode alterar o modo de bloqueio com SetLockingMode.

O valor anterior do registro corrente é restaurado se você rolar para um novo registro antes de chamar correnteização.A CDBException Se você telefonar edição para um conjunto de registros que não pode ser correnteizado ou se não há registro corrente.

Para obter mais informações, consulte o artigo Transação (ODBC) and conjunto de registros: Bloqueio de registros (ODBC).

Exceções

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

Exemplo

// To edit a record, first set up the edit buffer
rsCustSet.Edit();

// Then edit field data members for the record
rsCustSet.m_BillingID = 2795;
rsCustSet.m_ContactFirstName = _T("Jones Mfg");

// Finally, complete the operation
if(!rsCustSet.Update())
{
    // Handle the failure to update
    AfxMessageBox(_T("Couldn't update record!"));
}

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe CRecordset

Gráfico de hierarquia

CRecordset::atualização

CRecordset::AddNew

CRecordset::excluir

CRecordset::SetFieldDirty

CRecordset::SetFieldNull

CRecordset::CanUpdate

CRecordset::CanTransact

CRecordset::SetLockingMode

Outros recursos

CRecordset membros