AddNew (método, ADO)
Crea un nuevo registro para un objeto Recordset actualizable .
Sintaxis
recordset.AddNew FieldList, Values
Parámetros
del conjunto de registros
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, Valores 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 de cada matriz.
Observaciones
Use el método AddNew para crear e inicializar un nuevo registro. Use el método Supports con adAddNew (un valor de CursorOptionEn um) 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 activo después de llamar al método Update. Dado que el nuevo registro se anexa al Recordset , una llamada a MoveNext después de la actualización se moverá más allá del final del recordset de, lo que EOF 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 deba llamar al método Requery para que el nuevo registro sea accesible.
Si llama a AddNew al editar el registro actual o al agregar 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 de y de si se pasa el Fieldlist y Valores argumentos.
En modo de actualización inmediata (en el que el proveedor escribe cambios en el origen de datos subyacente una vez que se llama al método Update), al llamar al método AddNew sin argumentos, se establece la propiedad EditMode en adEditAdd (un valor EditModeEnum). El proveedor almacena en caché cualquier valor de campo que cambie localmente. Al llamar al método update de, se envía el nuevo registro a la base de datos y se restablece la propiedad EditMode a adEditNone (un valor editModeEnum). Si pasa los argumentos Fieldlist y Values, ADO publica inmediatamente el nuevo registro en la base de datos (no es necesario realizar ninguna llamada a Update ); El valor de la propiedad EditMode no cambia (adEditNone).
En 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é cualquier valor de campo que cambie localmente. 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 o restablece el EditMode a adEditNone, hasta que llame 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 el EditMode en 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=<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
Se aplica a
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)
de propiedad EditMode
método Requery de
admite de método
del método Update de
del método UpdateBatch de