Compartilhar via


CDaoRecordset::Edit

Chamar essa função de membro para permitir alterações para o registro atual.

virtual void Edit( );

Comentários

Uma vez que você chamar a função de membro de Editar , as alterações feitas aos campos de registro atual são copiadas para o buffer de impressão. Depois que você fizer alterações desejadas ao registro, chamada Atualizar para salvar suas alterações. Editar salva os valores dos membros de dados do conjunto de registros. Se você chamar Editar, faça alterações, então a chamada Editar novamente, os valores de registro foi restaurado ao que foram antes que a primeira chamada de Editar .

Aviso

Se você editar um registro e execute qualquer operação que se mover para outro registro sem primeiro Atualizarchamando, suas alterações serão perdidas sem aviso.Além de isso, se você fechar o conjunto de registros ou o banco de dados pai, o registro editado é descartado sem aviso.

Em alguns casos, você pode querer atualizar uma coluna fazendo a nula (não contendo nenhum dados). Para fazer isso, chame SetFieldNull com um parâmetro de Verdadeiro para marcar o campo de zero; isso também faz com que a coluna seja atualizado. Se você desejar um campo a ser escrito na fonte de dados mesmo que o valor não é alterado, chame SetFieldDirty com um parâmetro de Verdadeiro. Isso funciona mesmo se o campo tinha o valor de zero.

Os membros alterados marcas de dados do campo da estrutura para garantir que serão gravados no registro na fonte de dados pelo mecanismo de troca do campo do registro de DAO (DFX). Altere o valor de um campo geralmente define o campo sujo automaticamente, então você precisará raramente de chamar SetFieldDirty você mesmo, mas às vezes você pode querer garantir que as colunas explicitamente estivessem atualizadas ou inseridas independentemente do valor está no membro de dados do campo. O mecanismo de DFX também emprega o uso de PSEUDO NULL. Para obter mais informações, consulte CDaoFieldExchange::m_nOperation.

Se o mecanismo de armazenamento de não está sendo usado, altere o valor do campo não define automaticamente o campo como sujo. Em esse caso, será necessário definir explicitamente o campo sujo. O sinalizador contido em este m_bCheckCacheForDirtyFields controla verificação automático do campo.

Quando o objeto do conjunto de registros é bloqueado pessimista em um ambiente multiusuário, o registro permanecerá bloqueada de tempo Editar é usado atualizar até que seja concluída. Se o conjunto de registros é bloqueado optimista, o registro é bloqueado e comparado com o registro pré-redatado imediatamente antes que ele seja atualizado no banco de dados. Se o registro foi alterado desde que você Editarchamado, a operação de Atualizar falha e o MFC gera uma exceção. Você pode alterar o modo de bloqueio com SetLockingMode.

Dica

O bloqueio optimista sempre é usado em formatos externos de banco de dados, como ODBC e o ISAM instalável.

O registro atual permanece atual após você chama Editar. Para chamar Editar, deve haver um registro atual. Se não houver nenhum registro atual ou se o recordset não se refere a um objeto de abertura do conjunto de registros da tabela ou tipo de dynaset- tipo, ocorre uma exceção. A chamada Editar causa CDaoException a ser acionada sob as seguintes circunstâncias:

  • Não há nenhum registro atual.

  • O banco de dados ou conjunto de registros são somente leitura.

  • Qualquer campo no registro é atualizável.

  • O banco de dados ou conjunto de registros foram abertos para uso exclusivo por outro usuário.

  • Outro usuário bloqueou a página que contém o registro.

Se a fonte de dados suportar transações, você pode fazer a parte da chamada de Editar de uma transação. Observe que você deve chamar CDaoWorkspace::BeginTrans antes de chamar Editar e depois que o conjunto de registros foi aberto. Observe também que chamar CDaoWorkspace::CommitTrans não é um substituto para chamar Atualizar para concluir a operação de Editar . Para obter mais informações sobre transações, consulte a classe CDaoWorkspace.

Para informações relacionadas, consulte os tópicos de “método AddNew”, “método edição”, “método excluir”, “método update”, “propriedade e atualizável” na ajuda de DAO.

Requisitos

Cabeçalho: afxdao.h

Consulte também

Referência

Classe CDaoRecordset

Gráfico da hierarquia

CDaoRecordset::AddNew

CDaoRecordset::CancelUpdate

CDaoRecordset::CanTransact

CDaoRecordset::Delete

CDaoRecordset::Update