Saltar al contenido

No se puede crear una instancia del proveedor OLE DB Microsoft.Jet.OLEDB.4.0 para el servidor vinculado null

Después de mirar en diferentes repositorios y páginas webs al final hallamos la resolución que te compartiremos más adelante.

Solución:

Tengo el servidor MS Sql 2012 y Office 2013. Esto parece ser muy quisquilloso, por lo que es posible que deba adaptarse a sus versiones particulares.

  1. Descargue Microsoft.ACE.OLEDB.12.0 para Windows, versión de 64 bits que se encuentra aquí: https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Instálelo en su servidor.
  3. Compruebe el usuario que ejecuta SQL Server y asegúrese de que el usuario tenga acceso al directorio temporal C:WindowsServiceProfilesLocalServiceAppDataLocalTemp si es una cuenta de servicio local o C:WindowsServiceProfilesNetworkServiceAppDataLocal Temp si es una cuenta de servicio de red.
  4. Configure ‘Consultas distribuidas ad hoc’ y habilite el Microsoft.ACE.OLEDB archivos como este:

Aquí están los comandos SP_CONFIGURE:

SP_CONFIGURE 'show advanced options', 1; 
GO 
RECONFIGURE; 
SP_CONFIGURE 'Ad Hoc Distributed Queries', 1; 
GO 
RECONFIGURE; 
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1   
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParam', 1

en más nuevo Servidor SQL 2014 tuviste uso 'DynamicParameters' en vez de 'DynamicParam'

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

Asegúrese de registrar msexcl40.dll así:

regsvr32 C:WindowsSysWOW64msexcl40.dll

Echa un vistazo a sp_configure /RECONFIGURE…

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

Consulte estos enlaces para obtener más información:

https://technet.microsoft.com/en-us/library/aa259616(v=sql.80).aspx

http://blog.sqlauthority.com/2010/11/03/sql-server-fix-error-ms-jet-oledb-4-0-cannot-be-used-for-distributed-queries-because-the- proveedor-se-utiliza-para-ejecutar-en-modo-apartamento/

Obras !!! Muchas gracias. Solo para el servidor Win de 64 bits 2012R2. Permítanme poner todo el script de trabajo repitiendo parcialmente los bits de arriba que no son fáciles (para mí) de combinar:

  1. Descargue Microsoft.ACE.OLEDB.12.0 para Windows, versión de 64 bits que se encuentra aquí: https://www.microsoft.com/en-us/download/details.aspx?id=13255

  2. Cree un archivo de Excel con las columnas respectivas (nombre y clase en este caso).

  3. Ejecute el código a continuación:

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 

sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO 

-- Until SQL Server 2012

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1   
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1

-- SQL Server 2014 or later

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

-- Now you can export to Excel
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 8.0;Database=C:testing.xlsx;', 
'SELECT Name, Class FROM [Sheet1$]') 
SELECT [Name],[Class] FROM Qry_2
GO

-- Or import from Excel
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 8.0;Database=c:targetWorkbook.xls;', 
'SELECT * FROM [targetSheet$]') 

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *