Proveedor OLE DB para Jet

El proveedor OLE DB de Microsoft para Jet proporciona una interfaz OLE DB para bases de datos de Microsoft Access que permite realizar consultas distribuidas de SQL Server 2005 en bases de datos de Access y hojas de cálculo de Excel.

Para crear un servidor vinculado con el fin de tener acceso a una base de datos de Access

  1. Ejecute sp_addlinkedserver para crear el servidor vinculado, especificando Microsoft.Jet.OLEDB.4.0 como provider_name y el nombre de la ruta de acceso completa al archivo de base de datos .mdb de Access como data_source. El archivo .mdb de base de datos debe residir en el servidor. data_source se evalúa en el servidor, no en el cliente, y la ruta de acceso debe ser válida en el servidor.

    Por ejemplo, para crear un servidor vinculado denominado Nwind que funcione en la base de datos de Access Nwind.mdb en el c:\mydata directory, ejecute:

    sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 
       'c:\mydata\Nwind.mdb'
    
  2. Para tener acceso a una base de datos de Access no segura, los inicios de sesión de SQL Server que intenten tener acceso a la base de datos de Access deben tener definida una asignación de inicio de sesión para el nombre de usuario Admin sin ninguna contraseña.

    En el ejemplo siguiente se habilita el acceso para el usuario local Joe al servidor vinculado denominado Nwind.

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'Admin', NULL
    

    Para tener acceso a una base de datos de Access segura, utilice el Editor del Registro para configurar el Registro de manera que utilice el archivo de información de grupo de trabajo correcto que Access utiliza. Utilice el Editor del Registro para agregar a la entrada siguiente del Registro el nombre completo de la ruta de acceso al archivo de información del grupo de trabajo que Access utiliza:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB

  3. Una vez configurada la entrada del Registro, use sp_addlinkedsrvlogin para asignar los inicios de sesión locales a inicios de sesión de Access:

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe',
        'AccessUser', '034fhd99dl'
    
Nota de seguridadNota de seguridad

En este ejemplo no se utiliza la autenticación de Windows. Las contraseñas se transmiten sin cifrar. Las contraseñas se pueden ver en scripts y definiciones de origen de datos guardadas en disco, en copias de seguridad y en archivos de registro. No utilice nunca una contraseña de administrador en este tipo de conexión. Póngase en contacto con su administrador de red y pídale directrices de seguridad específicas para este entorno.

Las bases de datos de Access no tienen nombres de esquema ni de catálogo. Por tanto, en las consultas distribuidas se puede hacer referencia a las tablas de un servidor vinculado basado en Access utilizando un nombre de cuatro partes con el formato linked_server**...**table_name.

En el ejemplo siguiente se recuperan todas las filas de la tabla Employees del servidor vinculado denominado Nwind.

SELECT * 
FROM Nwind...Employees

Para crear un servidor vinculado con una hoja de cálculo de Excel

Se puede utilizar el proveedor OLE DB de Microsoft para Jet 4.0 con el fin de obtener acceso a hojas de cálculo de Microsoft Excel.

  • Para crear un servidor vinculado que obtenga acceso a una hoja de cálculo de Excel, utilice el formato del ejemplo siguiente:

    EXEC sp_addlinkedserver EXCEL,
         'Jet 4.0',
         'Microsoft.Jet.OLEDB.4.0',
         'c:\data\MySheet.xls', 
          NULL,
         'Excel 5.0;'
    
    GO
    
  • Para obtener acceso a los datos de una hoja de cálculo de Excel, asocie un nombre a un rango de celdas. Para obtener acceso a un rango con nombre, se utiliza el nombre del rango como nombre de tabla. La consulta siguiente se puede emplear para obtener acceso a un rango con nombre denominado SalesData utilizando el servidor vinculado creado en el ejemplo anterior.

    SELECT *
    FROM EXCEL...SalesData
    GO
    

Cuando se inserta una fila en un rango de celdas con nombre, ésta se agrega después de la última fila que forma parte del rango de celdas con nombre. Por tanto, si se desea insertar la fila rA después del encabezado de columna, es necesario asociar un nombre a las celdas de encabezado de columna y utilizar ese nombre como nombre de tabla. El rango de celdas crece automáticamente a medida que se insertan filas.

Para configurar un servidor vinculado con un archivo de texto con formato

Se puede utilizar el proveedor OLE DB de Microsoft para Jet con el fin de obtener acceso a archivos de texto y realizar consultas en ellos.

  • Si desea crear un servidor vinculado para obtener acceso a los archivos de texto directamente, sin tener que vincularlos como tablas en un archivo .mdb de Access, ejecute sp_addlinkedserver, como se muestra en el ejemplo siguiente.

    El proveedor es Microsoft.Jet.OLEDB.4.0 y la cadena del proveedor es 'Text'. El origen de datos es el nombre completo de la ruta de acceso al directorio que contiene los archivos de texto. Debe haber un archivo Schema.ini en el mismo directorio que los archivos de texto. El archivo Schema.ini describe la estructura del archivo de texto. Para obtener más información sobre cómo crear un archivo Schema.ini, vea la documentación del motor de base de datos Jet.

    --Create a linked server.
    EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
       'Microsoft.Jet.OLEDB.4.0',
       'c:\data\distqry',
       NULL,
       'Text'
    GO
    
    --Set up login mappings.
    EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
    GO
    
    --List the tables in the linked server.
    EXEC sp_tables_ex txtsrv
    GO
    
    --Query one of the tables: file1#txt
    --by using a four-part name. 
    SELECT * 
    FROM txtsrv...[file1#txt]