Compartilhar via


CDaoRecordset::AddNew

Chamar essa função de membro para adicionar um novo registro em um conjunto de registros da tabela ou tipo de dynaset- tipo.

virtual void AddNew( );

Comentários

Os campos do registro são inicialmente nulos. (Em a terminologia de banco de dados, o zero significa “não ter nenhum valor” e não é o mesmo que NULO em C++.) Para concluir a operação, você deve chamar a função de membro de Atualizar . Atualizar salvar suas alterações na fonte de dados.

Aviso

Se você editar um registro e o rola em outro registro sem chamar Atualizar, suas alterações são perdidas sem aviso.

Se você adicionar um registro em um conjunto de registros de dynaset- tipo chamando AddNew, o registro é visível no conjunto de registros e é incluído na tabela onde oculto se torna visível para todos os novos objetos de CDaoRecordset .

A posição do novo registro depende do tipo de conjunto de registros:

  • Em um conjunto de registros de dynaset- tipo, onde o novo registro a ser inserido não é garantida. Esse comportamento mudou com Microsoft Jet 3,0 por motivo de desempenho e de simultaneidade. Se seu objetivo é fazer um registro adicionado ao registro atual, obter o indicador de registro da última modificação e move-lo para o indexador:

    rs.SetBookmark(rs.GetLastModifiedBookmark());
    
  • Em um conjunto de registros da tabela de tipo para um índice foi especificado, registros são retornados no local apropriado na ordem de classificação. Se nenhum índice foi especificado, novos registros são retornados no final do conjunto de registros.

O registro que foi atual antes que você usou AddNew permanece atual. Se você deseja fazer a atual do novo registro e o recordset suporta indexadores, SetBookmark chamada para o marcador identificado pela configuração da propriedade da última modificação do objeto subjacente do conjunto de registros de DAO. Isso é útil para determinar o valor do contador para campos (de incremento automático) em um registro adicionado. Para obter mais informações, consulte GetLastModifiedBookmark.

Se as transações de suporte de banco de dados, você pode fazer sua parte da chamada de AddNew de uma transação. Para obter mais informações sobre transações, consulte a classe CDaoWorkspace. Observe que você deve chamar CDaoWorkspace::BeginTrans antes de chamar AddNew.

É ilegal chamar AddNew para um conjunto de registros cujo papel de membro de Abrir não é chamada. CDaoException é lançada se você chamar AddNew para um conjunto de registros que não pode ser anexada. Você pode determinar se o conjunto de registros é atualizável chamando CanAppend.

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.

Dica

Se os dois registros são armazenados em buffer (isto é, verifique automático do campo está ativado), chamando CancelUpdate restaurou variáveis de membro para valores que tinha antes que AddNew ou Editar foram chamados.

Para informações relacionadas, consulte os tópicos de “método AddNew”, “método CancelUpdate”, “propriedade da última modificação,” e “propriedade EditMode” na ajuda de DAO.

Requisitos

Cabeçalho: afxdao.h

Consulte também

Referência

Classe CDaoRecordset

Gráfico da hierarquia

CDaoRecordset::CanUpdate

CDaoRecordset::CancelUpdate

CDaoRecordset::Delete

CDaoRecordset::Edit

CDaoRecordset::Update

CDaoRecordset::CanTransact