Condividi tramite


Metodo NextRecordset (ADO)

Cancella l'oggetto Recordset corrente e restituisce il Recordset successivo avanzando attraverso una serie di comandi.

Sintassi

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

Valore restituito

Restituisce un oggetto Recordset. Nel modello di sintassi, recordset1 e recordset2 possono corrispondere all'oggetto Recordset oppure possono essere diversi. Quando si usano oggetti Recordset separati, la reimpostazione della proprietà ActiveConnection sull'oggetto Recordset originale (recordset1) dopo aver effettuato una chiamata a NextRecordset, genererà un errore.

Parametri

RecordsAffected
facoltativo. Una variabile Long a cui il provider restituisce il numero di record interessati dall'operazione corrente.

Nota

Questo parametro restituisce solo il numero di record interessati da un'operazione, non un conteggio dei record da un'istruzione select usata per generare l'oggetto Recordset.

Osservazioni

Usare il metodo NextRecordset per restituire i risultati del comando successivo in un'istruzione di comando composta o di una stored procedure che restituisce più risultati. Se si apre un oggetto Recordset basato su un'istruzione di comando composta (ad esempio, "SELECT * FROM table1;SELECT * FROM table2") usando il metodo Execute su un oggetto Command o il metodo Open su un oggetto Recordset, ADO esegue solo il primo comando e restituisce i risultati al recordset. Per accedere ai risultati dei comandi successivi dell'istruzione, è necessario effettuare la chiamata al metodo NextRecordset.

Se sono disponibili risultati aggiuntivi e se l'oggetto Recordset contenente le istruzioni composte non è disconnesso o sottoposto a marshalling oltre i limiti del processo, il metodo NextRecordset continuerà a restituire gli oggetti Recordset. Se un comando per la restituzione di righe viene eseguito correttamente ma non restituisce alcun record, l'oggetto Recordset restituito sarà aperto ma vuoto. Per verificare questa eventualità, controllare che le proprietà BOF e EOF siano entrambe impostate su True. Se un comando senza restituzione di righe viene eseguito correttamente, l'oggetto Recordset restituito verrà chiuso. È possibile verificare questa eventualità, controllando la proprietà State nell'oggetto Recordset. Quando non sono presenti altri risultati, il recordset verrà impostato su Nothing.

Il metodo NextRecordset non è disponibile in un oggetto Recordset disconnesso, in cui ActiveConnection è stato impostato su Nothing (in Microsoft Visual Basic) o NULL (in altri linguaggi di programmazione).

Se è in corso una modifica nella modalità di aggiornamento immediato, la chiamata al metodo NextRecordset genera un errore. In questo caso è necessario effettuare prima una chiamata al metodo Update o CancelUpdate.

Per passare i parametri per più di un comando nell'istruzione composta compilando la raccoltaParameters o passando una matrice con la chiamata Open o Execute originale, i parametri devono essere nello stesso ordine della raccolta o della matrice dei rispettivi comandi nella serie di comandi. È necessario completare la lettura di tutti i risultati prima di leggere i valori dei parametri di output.

Il provider OLE DB determina il momento in cui viene eseguito ogni comando in un'istruzione composta. Il provider Microsoft OLE DB per SQL Server, ad esempio, esegue tutti i comandi in un batch al momento della ricezione dell'istruzione composta. I Recordset risultanti vengono semplicemente restituiti quando si effettua una chiamata a NextRecordset.

Tuttavia, altri provider possono eseguire il comando successivo in un'istruzione solo dopo la chiamata a NextRecordset. Per questi provider, se si chiude in modo esplicito l'oggetto Recordset prima di eseguire l'intera istruzione di comando, ADO non esegue i comandi rimanenti.

Si applica a

Oggetto Recordset (ADO)

Vedere anche

Esempio del metodo NextRecordset (VB)
Esempio del metodo NextRecordset (VC++)