CDaoRecordset::AddNew
Chame essa função de membro para adicionar um novo registro a um conjunto de registros do tipo tabela ou do tipo dynaset.
virtual void AddNew( );
Comentários
Campos do registro são inicialmente nulo.(Na terminologia de banco de dados nulo significa "não tendo nenhum valor" e não é igual aNULO in C++.) Para concluir a operação, você deve chamar o Atualizaçãofunção de membro .Atualização salva as alterações feitas na fonte de dados.
Cuidado: |
---|
Se você edição um registro e role até outro registro sem chamada Atualização, suas alterações serão perdidas sem aviso. |
Se você adicionar um registro a um recordset tipo dynaset chamando AddNew, o registro está visível no conjunto de registros e incluído na tabela subjacente onde se torna visível para qualquer novo CDaoRecordset objetos.
A posição do novo registro depende do tipo do conjunto de registros:
Um tipo dynaset conjunto de registros, onde o novo registro é inserido não é garantido.Esse comportamento alterado com o Microsoft Jet 3.0 por motivos de desempenho e a simultaneidade.Se seu meta é tornar o registro recém-adicionado o registro corrente, obtenha o indicador do último registro modificado e mover para esse indicador:
rs.SetBookmark(rs.GetLastModifiedBookmark());
Em um conjunto de registros do tipo tabela para o qual um índice foi especificado, os registros são retornados em seu lugar na ordem de classificar adequada.Se nenhum índice foi especificado, novos registros serão retornados no participante do conjunto de registros.
O registro que era corrente antes do uso AddNew permanece corrente. Se você desejar tornar o novo registro corrente e o conjunto de registros oferece suporte a indicadores, telefonar SetBookmark para o indicador identificado pela configuração da propriedade LastModified do objeto do conjunto de registros DAO subjacente.Isso é útil para determinar o valor de contador (incremento automático) campos de um registro adicionado.Para obter mais informações, consulte GetLastModifiedBookmark.
Se o banco de dados oferece suporte a transações, você pode fazer o seu AddNew telefonar parte de uma transação. Para obter mais informações sobre transações, consulte classe CDaoWorkspace.Observe que você deve telefonar CDaoWorkspace::BeginTrans antes telefonar ndo AddNew.
É ilegal chamar AddNew para um conjunto de registros cuja em aberto função de membro não foi telefonar.A CDaoException Se você telefonar AddNew para um conjunto de registros que não pode ser acrescentado. Você pode determinar se o conjunto de registros é atualizável chamando CanAppend.
As marcas de estrutura alterada membros de campo de dados para garantir que eles serão gravados no registro na fonte de dados pelo mecanismo de troca (DFX) de campo de registro DAO.Alterar o valor de um campo geralmente define automatitelefonary sujo de campo, para que você raramente precisará telefonar SetFieldDirty sozinho, mas você pode, às vezes, deseja garantir colunas serão atualizadas ou inseridas independentemente de qual valor no campo de dados de membro explicitamente.O mecanismo DFX emprega o uso de PSEUDO NULO.Para obter mais informações, consulte CDaoFieldExchange::m_nOperation.
Se o mecanismo de buffer duplo não estiver sendo usado, em seguida, alterando o valor do campo não define automaticamente o campo sistema autônomo sujo.Nesse caso, será necessário conjunto explicitamente o campo sujo.O sinalizar contido em m_bCheckCacheForDirtyFields controla essa verificação automático de campo.
Observação: |
---|
Se os registros forem armazenados em buffer duplo (ou seja, verificação automático de campo é ativado), chamando CancelUpdate restaurará as variáveis de membro para os valores que tinham antes AddNew ou edição foi chamado. |
Para obter informações relacionadas, consulte os tópicos "Método AddNew", "Método CancelUpdate", "Propriedade LastModified" e "Propriedade EditMode" na Ajuda do DAO.
Requisitos
Cabeçalho: afxdao.h