CDaoRecordset::Edit

virtual void (Editar);
lançar (CDaoException, CMemoryException);

Observações

Chame essa função de membro para permitir que as alterações no registro atual.

Depois que você chamar a função de membro Editar , as alterações feitas aos campos do registro atual são copiadas para o buffer de cópia. Depois que você faça as alterações desejadas no registro, chame Atualizar para salvar as alterações. Editar salva os valores de membros de dados do conjunto de registros. Se você chamar Editar, faça alterações, em seguida, chamar Editar novamente, valores do registro são restauradas para o que eram antes do primeiro chamada de Editar.

Cuidado   Se você edita um registro e, em seguida, executar qualquer operação que se move para outro registro sem primeiro chamada Update, suas alterações serão perdidas sem aviso. Além disso, se você fechar o conjunto de registros ou banco de dados pai, seu registro editado será descartado sem aviso.

Em alguns casos, você pode querer atualizar uma coluna tornando nulo (contendo sem dados). Para fazer isso, chame SetFieldNull com um parâmetro de TRUE para marcar o campo Null; Isso também faz com que a coluna a ser atualizada. Se você deseja um campo a serem gravados para o Origem de dados, mesmo que seu valor não foi alterado, chame SetFieldDirty com um parâmetro de TRUE. Isso funciona mesmo se o campo tivesse o valor Null.

A estrutura marca alterado Membros de dados de campo para garantir que eles serão gravados o registro no origem de dados pelo mecanismo de troca (DFX) do campo de registro DAO. Alterando o valor de um campo geralmente define o campo sujo automaticamente, portanto, você raramente precisará chamar SetFieldDirty você mesmo, mas às vezes, convém garantir que colunas serão explicitamente atualizadas ou inseridas independentemente de qual valor é no membro de dados de campo. O mecanismo DFX emprega também o uso de PSEUDO NULL. Para obter mais informações, consulte CDaoFieldExchange::m_nOperation.

Se o mecanismo de armazenamento em buffer duplo não estiver sendo usado, alterando o valor do campo não automaticamente define o campo como sujo. Neste caso, será necessário ao conjunto explicitamente o campo sujo. O sinalizador contidas em m_bCheckCacheForDirtyFields controles essa verificação automático de campo.

Quando o objeto recordset pessimistically é bloqueado em um ambiente multiusuário, o registro permanece bloqueado desde o momento de Editar é usado até que a atualização seja concluída. Se o conjunto de registros otimista estiver bloqueado, o registro está bloqueado e em comparação com o registro de pré-edição pouco antes de ele é atualizado no banco de dados. Se o registro foi alterado desde que você chamado Editar, a operação de atualização falhar e MFC lança uma exceção. Você pode alterar o modo de bloqueio com SetLockingMode.

&Notanbsp;  A proteção otimista é sempre usada em formatos de banco de dados externo, como ODBC e ISAM instalável.

O registro atual permanece atual depois que você chamar Editar. Chamar Editar, deve haver um registro atual. Se não houver nenhum registro atual ou se o conjunto de registros não faz referência a um tipo de tabela aberto ou objeto de recordset do tipo dynaset, ocorre uma exceção. Chamar Editar faz um CDaoException ser lançado sob as seguintes condições:

Se a fonte de dados oferece suporte a transações, você pode tornar a Editar chamar parte de uma transação. Observe que você deve chamar CDaoWorkspace::BeginTrans antes de chamar Editar e depois o recordset foi aberto. Também Anotação 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 classe CDaoWorkspace.

Para obter mais informações sobre a atualização de dados, consulte o artigo DAO Recordset: operações de conjunto de registros no Guia do programador do Visual C++. Para obter informações relacionadas, consulte os tópicos "Método AddNew", "Editar Method", "Excluir método", "Método de Update" e "Propriedade atualizável" na Ajuda do DAO.

Visão geral de CDaoRecordsetMembros de classe | Gráfico de hierarquia

Consulte tambémnbsp;CDaoRecordset::Add&New, CDaoRecordset::CancelUpdate, CDaoRecordset::CanTransact, CDaoRecordset::Delete, CDaoRecordset::Update

Index