sql >> Base de Datos >  >> RDS >> Sqlserver

El proveedor OLE DB Microsoft.ACE.OLEDB.12.0 para el servidor vinculado (nulo) devolvió el mensaje El marcador no es válido.

Después de muchas luchas con este problema, encontré la siguiente solución:

  1. En servidores y equipos de 64 bits, primero debe DESINSTALAR todas las aplicaciones e instancias de Microsoft Office de 32 bits (instalación de Access 2007, Office 10 de 32 bits, etc.). Si no lo hace, no podrá instalar los nuevos componentes redistribuibles de Microsoft Access Database Engine 2010 de 64 bits. Sí, es un dolor de cabeza, pero la única forma que encontré de instalar los nuevos reemplazos para los componentes del motor JET que deben ejecutarse en máquinas de 64 bits.
  2. Descargue e instale el nuevo componente de Microsoft:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en
    • Esto instalará el acceso y otros motores que necesita para configurar servidores vinculados, archivos de Excel OPENROWSET, etc.
  3. Abra SQL Server y ejecute lo siguiente:

    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO
    
    • Esto establece los parámetros necesarios para acceder y ejecutar consultas relacionadas con los componentes. Dirección 'null
  4. Ahora, si está ejecutando llamadas OPENROWSET, debe abandonar las llamadas realizadas con los parámetros JET anteriores y usar las llamadas nuevas de la siguiente manera:

    (*Example, importing an EXCEL file directly into SQL):
    DONT DO THIS….
    SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=YES;Database=c:\PATH_TO_YOUR_EXCEL_FILE.xls','select * from [sheet1$]')
    
    USE THIS INSTEAD…
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=c:\PATH_TO_YOUR_EXCEL_FILE.xls','select * from [sheet1$]')
    
    *At this point resolved two SQL issues and ran perfectly
    
  5. Ahora, la parte divertida... encuentre todos sus discos de Office y reinstale Office y/o las aplicaciones necesarias en la máquina. Puede instalar la versión de 64 bits de Office 10 accediendo al disco, a la carpeta de 64 bits y ejecutándola, pero tenga cuidado ya que, en algunos casos, algunas aplicaciones de terceros aún no interactúan con esa versión de Office.