Compartir a través de


Método NextRecordset (ADO)

Borra el objeto Recordset actual y devuelve el siguiente recordset avanzando a través de una serie de comandos.

Sintaxis

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

Valor devuelto

Devuelve un objeto Recordset . En el modelo de sintaxis, recordset1 y recordset2 pueden ser el mismo objeto Recordset o puede usar objetos independientes. Al usar objetos Recordset independientes, restablecer la propiedad ActiveConnection en el objeto Recordset original (recordset1) después de llamar a NextRecordset generará un error.

Parámetros

RecordsAffected
Opcional. Variable Long a la que el proveedor devuelve el número de registros afectados por la operación actual.

Nota:

Este parámetro solo devuelve el número de registros afectados por una operación; no devuelve un recuento de registros de una instrucción select utilizada para generar el objeto Recordset.

Observaciones

Use el método NextRecordset para devolver los resultados del siguiente comando en una instrucción de comando compuesta o de un procedimiento almacenado que devuelve varios resultados. Si abre un objeto Recordset basado en una instrucción de comando compuesta (por ejemplo, "SELECT * FROM table1; SELECT * FROM table2") con el método Execute en un comando o el método Open en un objeto Recordset, ADO ejecuta solo el primer comando y devuelve los resultados al conjunto de registros. Para obtener acceso a los resultados de los comandos subsiguientes en la instrucción , llame al método NextRecordset .

Siempre que haya resultados adicionales y el objeto Recordset que contiene las instrucciones compuestas no está desconectado ni serializado a través de los límites del proceso, el método NextRecordset seguirá devolviendo objetos Recordset . Si un comando que devuelve filas se ejecuta correctamente pero no devuelve ningún registro, el objeto Recordset devuelto estará abierto pero vacío. Pruebe este caso comprobando que las propiedades BOF y EOF son True. Si un comando que no devuelve filas se ejecuta correctamente, se cerrará el objeto Recordset devuelto, que puede comprobar mediante la prueba de la propiedad State en el objeto Recordset. Cuando no haya más resultados, el conjunto de registros se establecerá en Nothing.

El método NextRecordset no está disponible en un objeto Recordset desconectado, donde ActiveConnection se ha establecido en Nothing (en Microsoft Visual Basic) o NULL (en otros lenguajes).

Si una edición está en curso mientras está en modo de actualización inmediata, llamar al método NextRecordset genera un error; llame primero al método Update o CancelUpdate .

Para pasar parámetros para más de un comando en la instrucción compuesta rellenando la colección Parameters o pasando una matriz con la llamada Open o Execute original, los parámetros deben estar en el mismo orden de la colección o matriz que sus comandos respectivos en la serie de comandos. Debe terminar de leer todos los resultados antes de leer los valores del parámetro de salida.

El proveedor OLE DB determina cuándo se ejecuta cada comando de una instrucción compuesta. El proveedor OLE DB de Microsoft para SQL Server, por ejemplo, ejecuta todos los comandos de un lote al recibir la instrucción compuesta. Los conjuntos de registros resultantes se devuelven simplemente cuando se llama a NextRecordset.

Sin embargo, otros proveedores pueden ejecutar el siguiente comando en una instrucción solo después de llamar a NextRecordset. Para estos proveedores, si cierra explícitamente el objeto Recordset antes de recorrer toda la instrucción de comando, ADO nunca ejecuta los comandos restantes.

Se aplica a

objeto Recordset (ADO)

Véase también

Ejemplo del método NextRecordset (VB)
Ejemplo del método NextRecordset (VC++)