Saltar al contenido

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

Solución:

Tengo MS Sql server 2012 y Office 2013. Esto parece ser muy delicado, 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. Verifique el usuario que ejecuta SQL Server y asegúrese de que el usuario tenga acceso al directorio temporal C: Windows ServiceProfiles LocalService AppData Local Temp si es una cuenta de servicio local o C: Windows ServiceProfiles NetworkService AppData Local 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 los más nuevos SQL Server 2014 Tuviste uso 'DynamicParameters' en lugar 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 guión de trabajo repitiendo parcialmente los bits de arriba que no son fáciles (como 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 *