Condividi tramite


Metodo AddNew (ADO)

Crea un nuovo record per un oggetto Recordset aggiornabile oggetto.

Sintassi

  
recordset.AddNew FieldList, Values  

Parametri

recordset
Oggetto recordset .

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

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

Osservazioni

Utilizzare il metodo AddNew per creare e inizializzare un nuovo record. Utilizzare il metodo Supports con adAddNew (un 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 corrente dopo aver chiamato il metodo Update. Poiché il nuovo record viene aggiunto al recordset di, una chiamata a MoveNext successiva all'aggiornamento passerà oltre la fine dell'recordset, rendendo EOF True. Se l'oggetto Recordset non supporta i segnalibri, potrebbe non essere possibile accedere al nuovo record una volta spostato 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 le 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 gli argomenti fieldlist e valori .

In modalità di aggiornamento immediato (in cui il provider scrive le modifiche nell'origine dati sottostante dopo aver chiamato il metodo Update), chiamare il metodo addNew senza argomenti imposta la proprietà EditMode su adEditAdd (valore EditModenum). Il provider memorizza nella cache qualsiasi valore di campo modificato localmente. La chiamata al metodo update di invia il nuovo record al database e reimposta la proprietà EditMode su adEditNone (valore EditModeEnum). Se si passano gli argomenti Fieldlist e valori , ADO inserisce immediatamente il nuovo record nel database (non è necessaria alcuna chiamata di aggiornamento ); il valore della proprietà EditMode non cambia (adEditNone).

In 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), la chiamata al metodo addNew senza argomenti imposta la proprietà EditMode su adEditAdd. Il provider memorizza nella cache qualsiasi valore di campo modificato localmente. La chiamata al metodo Update aggiunge il nuovo record all'Recordset corrente, ma il provider non inserisce le modifiche nel database sottostante o reimposta il EditMode su adEditNone, fino a quando non si chiama il metodo UpdateBatch. Se si passano gli argomenti Fieldlist e Valori, ADO invia il nuovo record al provider per l'archiviazione in una cache e imposta il EditMode su adEditAdd; È necessario chiamare il metodo updateBatch per pubblicare il nuovo record nel database sottostante.

Esempio

Nell'esempio seguente viene illustrato come usare il metodo AddNew con l'elenco di campi e l'elenco di valori inclusi, per vedere come includere l'elenco di campi e l'elenco di valori 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=<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  

Si applica a

oggetto Recordset (ADO)

Vedere anche

esempio di metodo AddNew (VB)
esempio di metodo AddNew (VBScript)
esempio di metodo AddNew (VC++)
metodo CancelUpdate (ADO)
Proprietà EditMode
metodo Requery
supporta la del metodo
metodo Update
metodo UpdateBatch