Metodo AddNew (ADO)

Crea un nuovo record per un oggetto Recordset aggiornabile.

Sintassi

  
recordset.AddNew FieldList, Values  

Parametri

recordset
Oggetto Recordset.

FieldList
facoltativo. Nome singolo o matrice di nomi o posizioni ordinali dei campi nel nuovo record.

Valori
facoltativo. Valore singolo o matrice di valori per i campi nel nuovo record. Se FieldList è un array, anche Value deve essere anche una matrice con lo stesso numero di membri. In caso contrario, si verifica un errore. L'ordine dei nomi di campo deve corrispondere all'ordine dei valori dei campi in ogni array.

Osservazioni

Usare il metodo AddNew per creare e inizializzare un nuovo record. Usare il metodo Supports con adAddNew (valore CursorOptionEnum) per verificare se è possibile aggiungere record all'oggetto Recordset corrente.

Dopo aver chiamato il metodo AddNew, il nuovo record diventa il record corrente e rimane tale anche dopo aver chiamato il metodo Update. Poiché il nuovo record viene accodato a Recordset, una chiamata a MoveNext dopo l'aggiornamento supererà la fine di recordset, impostando EOF su True. Se l'oggetto Recordset non supporta i segnalibri, potrebbe non essere possibile accedere al nuovo record dopo essersi spostati in un altro record. A seconda del tipo di cursore, potrebbe essere necessario chiamare il metodo Requery per rendere accessibile il nuovo record.

Se si chiama AddNew durante la modifica del record corrente o durante l'aggiunta di un nuovo record, ADO chiama il metodo Update per salvare eventuali modifiche e quindi crea il nuovo record.

Il comportamento del metodo AddNew dipende dalla modalità di aggiornamento dell'oggetto Recordset e dal fatto che si passino o meno gli argomenti FieldList e Values.

Nella modalità di aggiornamento immediato (in cui il provider scrive le modifiche all'origine dati sottostante dopo aver chiamato il metodo Update), chiamando il metodo AddNew senza argomenti la proprietà EditMode viene impostata su adEditAdd, un valore di EditModeEnum. Il provider memorizza nella cache qualsiasi modifica apportata al valore dei campi in locale. La chiamata al metodo Update inserisce il nuovo record nel database e reimposta la proprietà EditMode su adEditNone, un valore di EditModeEnum. Se si passano gli argomenti Fieldlist e Values, ADO inserisce immediatamente il nuovo record nel database e non è necessaria alcuna chiamata a Update. Il valore della proprietà EditMode non cambia (adEditNone).

Nella modalità di aggiornamento batch (in cui il provider memorizza nella cache più modifiche e le scrive nell'origine dati sottostante solo quando si chiama il metodo UpdateBatch), chiamando il metodo AddNew senza argomenti la proprietà EditMode viene impostata su adEditAdd. Il provider memorizza nella cache qualsiasi modifica apportata al valore dei campi in locale. La chiamata al metodo Update aggiunge il nuovo record al Recordset corrente, ma il provider non inserisce le modifiche nel database sottostante o reimposta EditMode su adEditNone, finché non si chiama il metodo UpdateBatch. Se si passano gli argomenti FieldList e Values, ADO invia il nuovo record al provider per l'archiviazione in una cache e imposta EditMode to adEditAdd. È necessario chiamare il metodo UpdateBatch per inserire il nuovo record nel database sottostante.

Esempio

L'esempio seguente illustra come usare il metodo AddNew con l'elenco di campi e l'elenco di valori inclusi per includere tali elenchi come matrici.

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  

Si applica a

Oggetto Recordset (ADO)

Vedere anche

Esempio del metodo AddNew (VB)
Esempio del metodo AddNew (VBScript)
Esempio del metodo AddNew (VC++)
Metodo CancelUpdate (ADO)
Proprietà EditMode
Metodo Requery
Metodo Supports
Metodo Update
Metodo UpdateBatch