Compartir a través de


Método NextRecordset (ADO)

Se aplica a: Access 2013, Office 2013

Borra el objeto Recordset actual y devuelve el siguiente objeto Recordset recorriendo varios comandos.

Sintaxis

Establezca 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 bien, pueden ser objetos independientes. Si utiliza objetos Recordset independientes y restablece el valor de la propiedad ActiveConnection en el objeto Recordset original (recordset1), se generará un error después de llamar a NextRecordset.

Parámetros

Parámetro Descripción
RecordsAffected Es opcional. Variable de tipo Long a la que el proveedor devuelve el número de registros afectados por la actual operación.

Nota:

Este parámetro sólo devuelve el número de registros que se ven afectados por una operación; no devuelve un número de registros de una instrucción SELECT usada para generar el objeto Recordset.

Comentarios

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") mediante el método Execute en un objeto Command o el método Open en un objeto Recordset, ADO ejecuta sólo el primer comando y devuelve los resultados al objeto Recordset. To access the results of subsequent commands in the statement, call the NextRecordset method.

Mientras haya resultados adicionales y el objeto Recordset que contiene las instrucciones compuestas no esté desconectado ni se hayan calculado las referencias 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 registros, el objeto Recordset devuelto estará abierto pero vacío. Para ver si este es el caso, compruebe si el valor de las propiedades BOF y EOF es True. Si un comando que no devuelve filas se ejecuta correctamente, el objeto Recordset devuelto estará cerrado, lo que puede comprobarse mediante la propiedad State del objeto Recordset. Cuando ya no queden más resultados, el valor de Recordset será Nothing.

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

Si hay una modificación en curso mientras se está en modo de actualización inmediata y se llama al método NextRecordset, se generará 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 bien, pasando una matriz con la llamada original a Abrir o Execute, los parámetros deben estar en el mismo orden en la colección o matriz que sus respectivos comandos en la serie de comandos. Es preciso terminar de leer todos los resultados antes de leer los valores de los parámetros de salida.

El proveedor OLE DB determina cuándo se ejecuta cada comando de una instrucción compuesta. Por ejemplo, el proveedor de Microsoft OLE DB para SQL Server ejecuta todos los comandos de un lote después de recibir la instrucción compuesta. Los objetos Recordset resultantes se devuelven simplemente al llamar a NextRecordset.

Sin embargo, puede que otros proveedores ejecuten el siguiente comando de una instrucción sólo después de una llamada a NextRecordset. En este caso, si cierra explícitamente el objeto Recordset antes de ejecutar paso a paso toda la instrucción de comandos, ADO no ejecutará nunca los comandos restantes.