Share via


AddNew (método) (ADO)

Crea un nuevo registro para un objeto Recordset actualizable.

Sintaxis

  
recordset.AddNew FieldList, Values  

Parámetros

recordset
Objeto Recordset.

FieldList
Opcional. Un nombre único o una matriz de nombres o posiciones ordinales de los campos del nuevo registro.

Valores
Opcional. Un valor único o una matriz de valores para los campos del nuevo registro. Si Fieldlist es una matriz, Values también debe ser una matriz con el mismo número de miembros; de lo contrario, se produce un error. El orden de los nombres de campo debe coincidir con el orden de los valores de campo en cada matriz.

Comentarios

Use el método AddNew para crear e inicializar un nuevo registro. Utilice el método Supports con adAddNew (un valor CursorOptionEnum) para comprobar si puede agregar registros al objeto Recordset actual.

Después de llamar al método AddNew, el nuevo registro se convierte en el registro actual y permanece actual después de llamar al método Update. Puesto que el nuevo registro se anexa al objeto Recordset, una llamada a MoveNext después de la actualización se moverá más allá del final del Recordset, haciendo que EOF sea True. Si el objeto Recordset no admite marcadores, es posible que no pueda acceder al nuevo registro una vez que se mueva a otro registro. Según el tipo de cursor, es posible que tenga que llamar al método Requery para que el nuevo registro sea accesible.

Si llama a AddNew mientras edita el registro actual o mientras agrega un nuevo registro, ADO llama al método Update para guardar los cambios y, a continuación, crea el nuevo registro.

El comportamiento del método AddNew depende del modo de actualización del objeto Recordset y de si se pasan los argumentos Fieldlist y Values.

En el modo de actualización inmediata (en el que el proveedor escribe los cambios en el origen de datos subyacente una vez que se ha llamado al método Update), si se llama al método AddNew sin argumentos, la propiedad EditMode se establece en adEditAdd (un valor EditModeEnum). El proveedor almacena en caché localmente los cambios de valor de campo. Al llamar al método Update, se publica el nuevo registro en la base de datos y se restablece la propiedad EditMode a adEditNone (un valorEditModeEnum). Si pasa los argumentos Fieldlist y Values, ADO envía inmediatamente el nuevo registro a la base de datos (no es necesario llamar a Update); el valor de la propiedad EditMode no cambia (adEditNone).

En el modo de actualización por lotes (en el que el proveedor almacena en caché varios cambios y los escribe en el origen de datos subyacente solo cuando se llama al método UpdateBatch), al llamar al método AddNew sin argumentos se establece la propiedad EditMode en adEditAdd. El proveedor almacena en caché localmente los cambios de valor de campo. Al llamar al método Update, se agrega el nuevo registro al Recordset actual, pero el proveedor no publica los cambios en la base de datos subyacente ni restablece editMode a adEditNone, hasta que se llama al método UpdateBatch. Si pasa los argumentos Fieldlist y Values, ADO envía el nuevo registro al proveedor para el almacenamiento en una memoria caché y establece EditMode a adEditAdd; debe llamar al método UpdateBatch para publicar el nuevo registro en la base de datos subyacente.

Ejemplo

En el ejemplo siguiente se muestra cómo usar el método AddNew con la lista de campos y la lista de valores incluidas para ver cómo incluir la lista de campos y la lista de valores como matrices.

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  

Se aplica a

Objeto de conjunto de registros (ADO)

Consulte también

Ejemplo del método AddNew (VB)
Ejemplo del método AddNew (VBScript)
Ejemplo del método AddNew (VC ++)
Método CancelUpdate (ADO)
Propiedad EditMode
Requery (método)
Método Supports
Update (método)
Método UpdateBatch