Método AddNew (ADO)

Cria um registro para um objeto Recordset atualizável.

Sintaxe

  
recordset.AddNew FieldList, Values  

Parâmetros

recordset
Um objeto Recordset.

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

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

Comentários

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

Depois que você chamar o método AddNew, o novo registro passará a ser o registro atual e permanecerá atual depois que você chamar o método Update. Como o novo registro é acrescentado ao Recordset, uma chamada a MoveNext após a Update irá até o final do Recordset, tornando o EOF True. Se o objeto Recordset não dá suporte a indicadores, talvez você não consiga acessar o novo registro depois de passar 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 durante a edição do registro atual ou ao adicionar um novo registro, o ADO chamará o método Update para salvar as alterações e criará o registro.

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

No modo de atualização imediata (no qual o provedor grava as alterações na fonte de dados subjacente depois que você chama o método Update), a chamada ao 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. A chamada ao método Update posta o novo registro no banco de dados e redefine a propriedade EditMode para adEditNone (um valor EditModeEnum). Se você transmitir os argumentos Fieldlist e Values, o ADO postará imediatamente o novo registro no banco de dados (nenhuma chamada Update é necessária). O valor da propriedade EditMode não é alterado (adEditNone).

No modo de atualização em lote (no qual o provedor armazena em cache várias alterações e as grava na fonte de dados subjacente somente quando você chama o método UpdateBatch), a chamada ao método AddNew sem argumentos define a propriedade EditMode como adEditAdd. O provedor armazena em cache qualquer alteração de valor de campo localmente. A chamada ao método Update adiciona o novo registro ao Recordset atual, mas o provedor não posta as alterações no banco de dados subjacente nem redefine o EditMode para adEditNone até que você chame o método UpdateBatch. Se você transmitir os argumentos Fieldlist e Values, o ADO enviará o novo registro para o provedor de armazenamento em um cache e definirá 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=foo$bar00;"  
  
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

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)
Propriedade EditMode
Método Requery
Método Supports
Método Update
Método UpdateBatch