CRecordset::AddNew

virtual privatevoid AddNew ( );
lançar ( CDBException );

Observações

Chame essa função de membro para preparar-se para adicionar um novo registro à tabela. Você deve chamar a função de membro RepetirConsulta para ver o registro recém-adicionado. 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.

&Notanbsp;  Se tiver implementado em massa linha buscando, não é possível chamar AddNew. 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++.

AddNew prepara um registro novo, vazio usando membros de dados de campo do conjunto de registros. Depois que você chamar AddNew, defina os valores desejados em membros de dados de campo do conjunto de registros. (Você não precisará chamar a função de membro Editar para esse efeito; usar Editar apenas para registros existentes.) Quando você chamar subseqüentemente Update, alterado valores nos dados de campo Membros são salvas no origem de dados.

Cuidado   Se você rolar para um novo registro antes de chamar Update, o novo registro é perdido, e nenhum aviso é fornecido.

Se a fonte 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 CDatabase. Observe que você deve chamar CDatabase:: BeginTrans antes de chamar AddNew.

Importa&ntenbsp;  Para dynasets, novos registros são adicionados ao conjunto de registros como o último registro. Adicionados registos não são adicionados ao instantâneos — você deve chamar RepetirConsulta para atualizar o conjunto de registros.

É ilegal chamar AddNew para um conjunto de registros cuja função de membro Abrir não tiver sido chamada. Um CDBException é lançada se você chamar AddNew para um conjunto de registros que não pode ser anexado ao. Você pode determinar se o conjunto de registros é atualizável chamando CanAppend.

Para obter mais informações, consulte os seguintes artigos no Guia do programador do Visual C++: Recordset: como conjuntos de registros atualizar registros (ODBC), Recordset: adicionando, atualizando e excluindo registros (ODBC), e Transações (ODBC).

Exemplo

Consulte o artigo transação: executar uma transação em um conjunto de registros (ODBC) no Guia do programador do Visual C++.

Visão geral de CRecordsetMembros de classe | Gráfico de hierarquia

Co&nsulte tambémnbsp;CRecordset::Edit, CRecordset::Delete, CRecordset:: Update, CRecordset:: Requery, CDatabase:: BeginTrans, CDBException

Index