virtual void AddNew ();
lançar (CDaoException, CMemoryException);
Observações
Chame essa função de membro para adicionar um novo registro a um recordset tipo tabela ou tipo dynaset. Campos do registro são inicialmente nulos. (Na terminologia do banco de dados, Null 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 Atualizar . Atualizar salva suas alterações para o Origem de dados.
Cuidado Se você edita um registro e, em seguida, Role para outro registro sem chamada Atualizar, suas alterações serão perdidas sem aviso.
Se você adicionar um registro a um recordset tipo dynaset, chamando AddNew, o registro é visível no conjunto de registros e incluídos na tabela base onde torna-se visível para quaisquer novos objetos de CDaoRecordset.
A posição do novo registro depende do tipo de conjunto de registros:
rS.SetBookmark (rs.GetLastModifiedBookmark ())
O registro que era atual antes de você usou AddNew permanece atual. Se você deseja tornar o novo registro atual e o conjunto de registros oferece suporte a indicadores, chame SetBookmark para o indicador identificado pela configuração da propriedade LastModified do objeto de conjunto de registros DAO subjacente. Isso é útil para determinar o valor para campos de contador (incremento automático) de um registro adicionado. Para obter mais informações, consulte GetLastModifiedBookmark.
Se o banco de dados oferece suporte a transações, você pode tornar seu AddNew chamar parte de uma transação. Para obter mais informações sobre transações, consulte classe CDaoWorkspace. Observe que você deve chamar CDaoWorkspace::BeginTrans antes de chamar AddNew.
É ilegal chamar AddNew para um conjunto de registros cuja função de membro Abrir não tiver sido chamada. Um CDaoException é lançada se você chamar AddNew para um conjunto de registros que não pode ser acrescentado. Você pode determinar se o conjunto de registros é atualizável chamando CanAppend.
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.
&Notanbsp; Se registros forem armazenadas em buffer duplo (ou seja, a verificação automático de campo é habilitada), chamada CancelUpdate restaurará as variáveis de membro para os valores que tinham antes AddNew ou Editar foi chamado.
Para obter mais informações sobre a atualização de registros, 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", "Método CancelUpdate", "Propriedade LastModified" e "Propriedade EditMode" na Ajuda do DAO.
Visão geral de CDaoRecordset | Membros de classe | Gráfico de hierarquia
Co&nsulte tambémnbsp;CDaoRecordset::CanUpdate, CDaoRecordset::CancelUpdate, CDaoRecordset::Delete, CDaoRecordset::Edit, CDaoRecordset::Update, CDaoRecordset::CanTransact