none
Ayuda con un problema enlazando un archivo texto, con sp_addlinkedserver RRS feed

  • Pregunta

  • /*
    Estimados amigos. Deseo enlazar un archivo como un servidor vinculado.

    Para ello modifique la ayuda al respecto y ejecute lo siguiente:
    */

    EXEC

     

    sp_droplinkedsrvlogin 'txtsrv1', null

    GO

    EXEC

     

    sp_dropserver 'txtsrv1'

    GO

    --Create a linked server.

    EXEC

     

    sp_addlinkedserver

     

    'txtsrv1',

     

    'Jet 4.0',

     

    'Microsoft.Jet.OLEDB.4.0',

     

    'c:\l1',

     

    NULL,

     

    'Text'

    GO

    --Set up login mappings.

    EXEC

     

    sp_addlinkedsrvlogin 'txtsrv1', FALSE, NULL, NULL

    GO

    --List the tables in the linked server.

    EXEC

     

    sp_tables_ex txtsrv1

    GO

    --Query one of the tables: file1#txt

    --using a four-part name.

    SELECT

     

    *

    FROM

     

    txtsrv1...[file1#txt]
    go
    /*
    Sin embargo desde la penultima sentencia me da este mensaje de error:

    El proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "txtsrv1" devolvi el mensaje "'c:\l1' no es una ruta de acceso vlida. Asegrese de que la ruta est escrita correctamente y que est conectado al servidor donde se encuentra el archivo.".

    Mens 7303, Nivel 16, Estado 1, Procedimiento sp_tables_ex, Lnea 41

    No se puede inicializar el objeto de origen de datos del proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "txtsrv1".

     

    Si existe el archivo en el disco c:\l1 y si trato de vincular una hoja de excel tambián tengo este problema.

    LA PREGUNTA es como lo puedo realizar para que no me de error y se ejecute correctamente.
    */

    viernes, 3 de abril de 2009 16:37

Respuestas


  • Hola, imagina que tengo un achivo de nombre TextFile.txt en C:\Util\  

    Este archivo contiene una columna de datos llamada Ciudad, este es el script que utilize para registrar el linked server y ejecutar la consulta y funciono

    exec sp_addlinkedserver
     @server = 'MyDocuments',
     @provider = 'Microsoft.Jet.OLEDB.4.0',
     @srvproduct = 'OLE DB Provider for Jet (Text IISAM)',
     @datasrc = 'c:\Util\',
     @provstr = 'Text'
    GO
    exec sp_addlinkedsrvlogin 'MyDocuments', false, NULL, 'admin'
    GO
    
    SELECT [Ciudad]
    FROM [MyDocuments]...[TextFile#txt]
    GO
    

    Recuerda que para 64 bits aun existen inconvenientes si tratas de hacer conexiones OLEDB, revisa si es tu caso, espero te sea de ayuda

    Saludos


    Andrés González
    MCITP | Business Intelligence Developer 2008
    MCPD | Web Developer
    http://www.intermezzo-bi.com
    sábado, 4 de abril de 2009 14:07