OLE DB Provider for Jet

O Microsoft OLE DB Provider for Jet fornece uma interface OLE DB para bancos de dados do Microsoft Access e permite que consultas do SQL Server 2005 e posterior consultem bancos de dados do Access e planilhas do Excel.

Para criar um servidor vinculado para acessar um banco de dados do Access

  1. Execute sp_addlinkedserver para criar o servidor vinculado especificando Microsoft.Jet.OLEDB.4.0 como provider_name e o nome do caminho completo do arquivo de banco de dados .mdb do Access como data_source. O arquivo de banco de dados .mdb deve residir no servidor. O data_source é avaliado no servidor, não no cliente, e o caminho deve ser válido no servidor.

    Por exemplo, para criar um servidor vinculado nomeado Nwind que opere no banco de dados do Access nomeado Nwind.mdb no c:\mydata directory, execute.

    sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 
       'c:\mydata\Nwind.mdb'
    
  2. Para acessar um banco de dados do Access não protegido, os logons do SQL Server que tentam acessar o banco de dados do Access devem ter um mapeamento de logon definido para o nome de usuário Admin sem uma senha.

    O exemplo a seguir habilita o acesso ao usuário local Joe ao servidor vinculado nomeado Nwind.

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

    Para acessar um banco de dados do Access protegido, configure o Registro usando o Editor do Registro para usar o arquivo de informações do grupo de trabalho usado pelo Access. Use o Editor do Registro para adicionar o nome completo do caminho do arquivo de informações do grupo de trabalho usado pelo Access para esta entrada do Registro:

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

  3. Depois que a entrada do Registro estiver configurada, use sp_addlinkedsrvlogin para criar mapeamentos de logons locais para logons do Access:

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe',
        'AccessUser', '034fhd99dl'
    
Observação sobre segurançaObservação sobre segurança

Este exemplo não usa a Autenticação do Windows. As senhas serão transmitidas descriptografadas. Senhas podem ser visíveis em definições de fonte de dados e scripts salvos em disco, em backups e em arquivos de log. Nunca use uma senha de administrador nesse tipo de conexão. Contate o administrador da rede para obter orientações sobre segurança específicas a seu ambiente.

Bancos de dados do Access não têm catálogo e nomes de esquema. Portanto tabelas em um servidor vinculado baseado no Access podem ser referidas em consultas distribuídas usando um nome de quatro partes do formulário linked_server**...**table_name.

O exemplo a seguir recupera todas as linhas da tabela Employees no servidor vinculado nomeado Nwind.

SELECT * 
FROM Nwind...Employees

Para criar um servidor vinculado em relação a uma planilha do Excel

O Microsoft OLE DB Provider for Jet 4.0 pode ser usado para acessar planilhas do Microsoft Excel.

  • Para criar um servidor vinculado que acessa uma planilha do Excel, use o formato do exemplo a seguir:

    EXEC sp_addlinkedserver EXCEL,
         'Jet 4.0',
         'Microsoft.Jet.OLEDB.4.0',
         'c:\data\MySheet.xls', 
          NULL,
         'Excel 5.0;'
    
    GO
    
  • Para acessar dados de uma planilha do Excel, associe um intervalo de células com um nome. Um intervalo nomeado pode ser acessado usando o nome do intervalo como o nome da tabela. A consulta a seguir pode ser usada para acessar um intervalo nomeado chamado SalesData usando a configuração do servidor vinculado no exemplo anterior.

    SELECT *
    FROM EXCEL...SalesData
    GO
    

Quando uma linha é inserida em um intervalo de células nomeado, a linha é adicionada após a última linha que faz parte do intervalo de células nomeado. Portanto, se desejar inserir a linha rA após o título da coluna, associe a célula do título da coluna a um nome e use esse nome como o nome da tabela. O intervalo de células crescerá automaticamente conforme linhas forem inseridas.

Para configurar um servidor vinculado em relação a um texto formatado

O Microsoft OLE DB Provider for Jet pode ser usado para acessar e consultar arquivos de texto.

  • Para criar um servidor vinculado para acessar arquivos de texto diretamente sem vincular os arquivos como tabelas em um arquivo .mdb do Access, execute sp_addlinkedserver, conforme mostrado no exemplo a seguir.

    O provedor é Microsoft.Jet.OLEDB.4.0 e a cadeia de caracteres do provedor é 'Text'. A fonte de dados é o nome completo do diretório que contém os arquivos de texto. Deve existir um arquivo Schema.ini no mesmo diretório que os arquivos de texto. Um arquivo Schema.ini descreve a estrutura do arquivo de texto. Para obter mais informações sobre como criar um arquivo Schema.ini, consulte a documentação do Mecanismo de Banco de Dados do 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]