Compartilhar via


Método AddNew (ADO)

Cria um novo registro para um objeto recordset atualizável.

Sintaxe

  
recordset.AddNew FieldList, Values  

Parâmetros

conjunto de registros
Um objeto Recordset.

FieldList
Opcional. Um único nome ou uma matriz de nomes ou posições ordinais dos campos no novo registro.

Valores
Opcional. Um único valor ou uma matriz de valores para os campos no novo registro. Se Fieldlist for uma matriz, os valores também deverão ser uma matriz com o mesmo número de membros; caso contrário, ocorrerá um erro. A ordem dos nomes de campo deve corresponder à ordem dos valores de campo em cada matriz.

Observações

Use o método AddNew para criar e inicializar um novo registro. Use o método Supports com adAddNew (um valor CursorOptionEnum ) para verificar se você pode adicionar registros ao objeto Recordset atual.

Depois de chamar o método AddNew, o novo registro se tornará o registro atual e permanecerá atual depois que você chamar o método Update. Como o novo registro é acrescentado ao Conjunto de Registros, uma chamada para MoveNext após a Atualização passará do final do Conjunto de Registros, tornando o EOF True. Se o objeto Recordset não der suporte a indicadores, talvez você não consiga acessar o novo registro depois de migrar para outro registro. Dependendo do tipo de cursor, talvez seja necessário chamar o método Requery para tornar o novo registro acessível.

Se você chamar AddNew ao editar o registro atual ou ao adicionar um novo registro, o ADO chamará o método Update para salvar as alterações e, em seguida, criará o novo registro.

O comportamento do método AddNew depende do modo de atualização do objeto Recordset e se você passa os argumentos Fieldlist e Values .

No modo de atualização imediata (no qual o provedor grava alterações na fonte de dados subjacente depois que você chama o método Update ), chamar o método AddNew sem argumentos define a propriedade EditMode como adEditAdd (um valor EditModeEnum ). O provedor armazena em cache qualquer alteração de valor de campo localmente. Chamar o método Update posta o novo registro no banco de dados e redefine a propriedade EditMode para adEditNone (um valor EditModeEnum ). Se você passar os argumentos Fieldlist e Values , o ADO postará imediatamente o novo registro no banco de dados (nenhuma chamada de atualização é necessária); o valor da propriedade EditMode não é alterado (adEditNone).

No modo de atualização em lote (no qual o provedor armazena várias alterações em cache e as grava na fonte de dados subjacente somente quando você chama o método UpdateBatch ), chamar o método AddNew sem argumentos define a propriedade EditMode como adEditAdd. O provedor armazena em cache qualquer alteração de valor de campo localmente. Chamar o método Update adiciona o novo registro ao Conjunto de Registros atual, mas o provedor não posta as alterações no banco de dados subjacente ou redefine o EditMode para adEditNone até que você chame o método UpdateBatch . Se você passar os argumentos Fieldlist e Values , o ADO enviará o novo registro para o provedor de armazenamento em um cache e definirá o EditMode como adEditAdd; você precisa chamar o método UpdateBatch para postar o novo registro no banco de dados subjacente.

Exemplo

O exemplo a seguir mostra como usar o método AddNew com a lista de campos e a lista de valores incluídas para ver como incluir a lista de campos e a lista de valores como matrizes.

create table aa1 (intf int, charf char(10))  
insert into aa1 values (2, 'aa')  
  
Dim cn As New adodb.Connection  
Dim rs As New adodb.Recordset  
Dim cmd As New adodb.Command  
  
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=<password>;"  
  
cn.Open  
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic  
  
Dim fieldsArray(1) As Variant  
fieldsArray(0) = "intf"  
fieldsArray(1) = "charf"  
Dim values(1) As Variant  
values(0) = 4  
values(1) = "as"  
rs.AddNew fieldsArray, values  
rs.Update  

Aplica-se a

do objeto Recordset (ADO)

Consulte Também

Exemplo do método AddNew (VB)
Exemplo do método AddNew (VBScript)
Exemplo do método AddNew (VC++)
método CancelUpdate (ADO)
de propriedade EditMode
método Requery
dá suporte ao método
método Update
método UpdateBatch