virtual privatevoid Edit( );
lançar ( CDBException, CMemoryException );
Observações
Chame essa função de membro para permitir que as alterações no registro atual. Depois que você chamar Editar, você pode alterar os membros de dados campo redefinindo diretamente seus valores. A operação é concluída quando você chamar subseqüentemente função de membro Atualizar para salvar as alterações na fonte de dados.
&Notanbsp; Se tiver implementado em massa linha buscando, não é possível chamar Editar. Isso resultará em uma declaração falha. Apesar de classe CRecordset não fornece um mecanismo para atualizar linhas em massa de dados, você pode gravar suas próprias funções, usando a função de API de ODBC SQLSetPos. Para obter um exemplo de como fazer isso, consulte o exemplo de DBFETCH. Para obter mais informações sobre a linha em massa buscando, consulte o artigo Recordset: Buscar registros em massa (ODBC) no Guia do programador do Visual C++.
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.
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.
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 CDatabase:: BeginTrans antes de chamar Editar e depois o recordset foi aberto. Também Anotação que chamar CDatabase:: 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 CDatabase.
Dependendo do modo de bloqueio atual, o registro sendo atualizado pode estar bloqueado por Editar até que você chamar de atualização ou role para outro registro, ou ele pode estar bloqueado somente durante a chamada de Editar . Você pode alterar o modo de bloqueio com SetLockingMode.
O valor anterior do registro atual é restaurado se você rolar para um novo registro antes de chamar Update. Um CDBException é lançada se você chamar Editar para um conjunto de registros que não pode ser atualizado ou se não houver nenhum registro atual.
Para obter mais informações, consulte os artigos Transações (ODBC) e Recordset: bloqueio de registros (ODBC) no Guia do programador do Visual C++.
Exemplo
/ / Exemplo de CRecordset::Edit
/ / Para editar um registro,
/ / Primeiro co&nfigurar o buffer de editar
rsCustSet.Edit ();
/ / Editar, em seguida, os membros de dados de campo para o registro
rsCustSet.m_dwCustID = 2795;
rsCustSet.m_strCustomer = "Jones Mfg";
/ / Finalmente, concluir a operação
se (! rsCustSet.Update ())
nbsp; / / Tratar a falha para atualizar
Visão geral de CRecordset | Membros de classe | Gráfico de hierarquia
Consulte tambémnbsp;CRecordset:: Update, CRecordset::Add&New, CRecordset::Delete, CRecordset::SetFieldDirty, CRecordset::SetFieldNull, CRecordset::CanUpdate, CRecordset::CanTransact, CRecordset::SetLockingMode