Compartir a través de


Open (método) (conjunto de registros ADO)

Abre un cursor en un objeto Recordset.

Sintaxis

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

Parámetros

Origen
Opcional. Un Variant que se evalúa como un objeto Command válido, una instrucción SQL, un nombre de tabla, una llamada de procedimiento almacenado, una dirección URL o el nombre de un archivo o un objeto Stream que contiene un objeto Recordset almacenado de forma persistente.

ActiveConnection
Opcional. O bien una Variant que se evalúa a un nombre de variable de objeto de Connection válido, o bien una String que contiene parámetros de ConnectionString.

CursorType
Opcional. Valor CursorTypeEnum que determina el tipo de cursor que el proveedor debe usar al abrir el objeto Recordset. El valor predeterminado es adOpenForwardOnly.

LockType
Opcional. Un valor LockTypeEnum que determina qué tipo de bloqueo (simultaneidad) debe usar el proveedor al abrir el objeto Recordset. El valor predeterminado es adLockReadOnly.

Opciones
Opcional. Un valor Long que indica cómo el proveedor debe evaluar el argumento Source si representa algo distinto de un objeto Command o que el objeto Recordset se debe restaurar desde un archivo donde se guardó anteriormente. Puede ser uno o varios valores CommandTypeEnum o ExecuteOptionEnum, que se pueden combinar con un operador OR bit a bit.

Nota

Si abre un objeto Recordset desde un objeto Stream que contiene un objeto Recordset persistente, el uso de un valor ExecuteOptionEnum de adAsyncFetchNonBlocking no tendrá ningún efecto; la captura será sincrónica y de bloqueo.

Nota

Los valores ExecuteOpenEnum de adExecuteNoRecords o adExecuteStream no deben usarse con Open.

Comentarios

El cursor predeterminado de un objeto Recordset de ADO es un cursor de solo avance y de solo lectura ubicado en el servidor.

El uso del método Open en un objeto Recordset abre un cursor que representa registros de una tabla base, los resultados de una consulta o un objeto Recordset guardado anteriormente.

Use el argumento Source opcional para especificar un origen de datos mediante uno de los siguientes: una variable de objeto Command, una instrucción SQL, un procedimiento almacenado, un nombre de tabla, una dirección URL o un nombre de ruta de acceso de archivo completa. Si Source es un nombre de ruta de acceso de archivo, puede ser una ruta de acceso completa ("c:\dir\file.rst"), una ruta de acceso relativa ("..\file.rst") o una dirección URL (https://files/file.rst).

No es una buena idea usar el argumento Source del método Open para realizar una consulta de acción que no devuelva registros porque no hay ninguna manera fácil de determinar si la llamada se realizó correctamente. Se cerrará el objeto Recordset devuelto por dicha consulta. Para realizar una consulta que no devuelve registros, como una instrucción SQL INSERT, llame al método Execute de un objeto Command o al método Execute de un objeto Connection en su lugar.

El argumento ActiveConnection corresponde a la propiedad ActiveConnection y especifica en qué conexión se abre el objeto Recordset. Si pasa una definición de conexión para este argumento, ADO abre una nueva conexión mediante los parámetros especificados. Después de abrir el objeto Recordset con un cursor del lado cliente estableciendo la propiedad CursorLocation en adUseClient, puede cambiar el valor de esta propiedad para enviar actualizaciones a otro proveedor. O bien, puede establecer esta propiedad en Nothing (en Microsoft Visual Basic) o NULL para desconectar el objeto Recordset de cualquier proveedor. El cambio de ActiveConnection para un cursor del lado servidor genera un error, sin embargo.

Para los demás argumentos que corresponden directamente a las propiedades de un objeto Recordset (Source, CursorType y LockType), la relación de los argumentos con las propiedades es la siguiente:

  • La propiedad es de lectura y escritura antes de que se abra el objeto Recordset.

  • La configuración de la propiedad se usa a menos que pase los argumentos correspondientes al ejecutar el método Open. Si pasa un argumento, invalida el valor de propiedad correspondiente y el valor de la propiedad se actualiza con el valor del argumento.

  • Después de abrir el objeto Recordset, estas propiedades se convierten en de solo lectura.

Nota

La propiedad ActiveConnection es de solo lectura para los objetos Recordset cuya propiedad Source está establecida en un objeto Command válido, incluso si el objeto Recordset no está abierto.

Si pasa un objeto Command en el argumento Source y también pasa un argumento ActiveConnection, se produce un error. La propiedad ActiveConnection del objeto Command ya debe establecerse en un objeto Connection o una cadena de conexión válidos.

Si pasa algo distinto de un objeto Command en el argumento Source, puede usar el argumento Options para optimizar la evaluación del argumento Source. Si el argumento Options no está definido, puede experimentar una disminución del rendimiento porque ADO debe realizar llamadas al proveedor para determinar si el argumento es una instrucción SQL, un procedimiento almacenado, una dirección URL o un nombre de tabla. Si sabe qué tipo de Source utiliza, al establecer el argumento Options indica a ADO que salte directamente al código correspondiente. Si el argumento Options no coincide con el tipo Source, se produce un error.

Si pasa un objeto Stream en el argumento Source, no debe pasar información a los demás argumentos. Si lo hace, se generará un error. La información de ActiveConnection no se conserva cuando se abre un objeto Recordset desde un objeto Stream.

El valor predeterminado para el argumento Options es adCmdFile si no hay ninguna conexión asociada al objeto Recordset. Normalmente, esto será el caso de los objetos Recordset almacenados de forma persistente.

Si el origen de datos no devuelve ningún registro, el proveedor establece las propiedades BOF y EOF en True y la posición del registro actual no está definida. Todavía puede agregar nuevos datos a este objeto Recordset vacío si el tipo de cursor lo permite.

Cuando haya concluido las operaciones sobre un objeto Recordset abierto, use el método Close para liberar los recursos del sistema asociados. Cuando se cierra un objeto, este no se elimina de la memoria. Puede cambiar la configuración de sus propiedades y usar el método Open para abrirlo de nuevo más tarde. Para eliminar completamente un objeto de la memoria, establezca la variable de objeto en Nothing.

Antes de establecer la propiedad ActiveConnection, llame a Open sin operandos para crear una instancia de un objeto Recordset creado anexando campos a la colección RecordsetFields.

Si ha establecido la propiedad CursorLocation en adUseClient, puede recuperar filas de forma asincrónica de dos maneras. El método recomendado es establecer Options en adAsyncFetch. Como alternativa, puede usar la propiedad dinámica "Procesamiento asincrónico de conjuntos de filas" en la colección Properties, pero los eventos recuperados relacionados se pueden perder si no establece el parámetro Options en adAsyncFetch.

Nota

La captura en segundo plano del proveedor MS Remote solo se admite a través del parámetro Options del método Open.

Nota

Las URL que usan el esquema http invocan automáticamente el Proveedor de Microsoft OLE DB para publicaciones en Internet. Para obtener más información, véase Direcciones URL absolutas y relativas.

Algunas combinaciones de valores CommandTypeEnum y ExecuteOptionEnum no son válidas. Para obtener información sobre qué opciones no se pueden combinar, vea los temas de ExecuteOptionEnum y CommandTypeEnum.

Se aplica a

Objeto de conjunto de registros (ADO)

Consulte también

Ejemplo de los métodos de apertura y cierre (VB)
Ejemplo de los métodos Open y Close (VBScript)
Ejemplo de los métodos Open y Close (VC ++)
Ejemplo de los métodos Save y Open (VB)
Open (método) (conexión de ADO)
Open (método) (registro de ADO)
Open (método) (Stream de ADO)
Método OpenSchema
Save (método)