Compartilhar via


CRecordset::AddNew

Prepara-se adicionando um novo registro na tabela.

virtual void AddNew( );

Comentários

Você deve chamar a função de membro de Requery para ver o registro adicionado. 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.

Dica

Se você tiver implementado a linha em massa que pesquisa, você não pode chamar AddNew.Isso resultará em uma declaração falha.Embora a classe CRecordset não fornece um mecanismo para atualizar linhas em massa de dados, você pode escrever suas próprias funções usando a função da API SQLSetPosODBC.Para obter mais informações sobre a linha em massa que pesquisa, consulte o artigo conjunto de registros: Para buscar registros em massa (ODBC).

AddNew preparar um novo registro vazia, usando os membros de dados do campo do conjunto de registros. Depois de você chamar AddNew, defina os valores que você deseja nos membros de dados do campo do conjunto de registros. (Você não precisa chamar a função de membro de Editar essa finalidade; use Editar somente para registros existentes.) Quando você chama posteriormente Atualizar, os valores alterados nos membros de dados do campo é salvo na fonte de dados.

Aviso

Se você colocar um novo registro antes de chamar Atualizar, o novo registro é perdido, e nenhum aviso é dado.

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

Dica

Para dynasets, novos registros são adicionados ao conjunto de registros como o último registro.Os registros adicionados não são adicionados para instantâneos; você deve chamar Requery para atualizar o conjunto de registros.

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

Para obter mais informações, consulte os seguintes artigos: conjunto de registros: Como atualizar registros dos conjuntos de registros (ODBC), conjunto de registros: Adicionar, atualizar e excluir registros (ODBC), e transação (ODBC).

Exceções

Esse método pode lançar exceções do tipo CDBException*.

Exemplo

Consulte o artigo transação: Executando uma transação em um conjunto de registros (ODBC).

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe CRecordset

Gráfico da hierarquia

CRecordset::Edit

CRecordset::Delete

CRecordset::Update

CRecordset::Requery

CDatabase::BeginTrans

Classe CDBException