sql >> Database >  >> RDS >> Sqlserver

Kan geen instantie maken van OLE DB-provider Microsoft.Jet.OLEDB.4.0 voor gekoppelde server null

Ik heb MS Sql-server 2012 en Office 2013. Dit lijkt erg kieskeurig, dus het kan zijn dat u zich moet aanpassen aan uw specifieke versies.

  1. Download de Microsoft.ACE.OLEDB.12.0 voor Windows, 64-bits versie die hier te vinden is:https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Installeer het op uw server.
  3. Controleer de gebruiker met SQL Server en zorg ervoor dat de gebruiker toegang heeft tot de tijdelijke directory C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp als het een lokaal serviceaccount is of C:\Windows\ServiceProfiles\NetworkService\ AppData\Local\Temp als het een netwerkserviceaccount is.
  4. Configureer 'Ad Hoc Distributed Queries' en schakel de Microsoft.ACE.OLEDB in bestanden als deze:

Dit zijn de SP_CONFIGURE-opdrachten:

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

Op nieuwere SQL Server 2014 U had 'DynamicParameters' . gebruikt in plaats van 'DynamicParam'

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

Zorg ervoor dat u msexcl40.dll als volgt registreert:

regsvr32 C:\Windows\SysWOW64\msexcl40.dll


  1. Volledige deelname aan SQL

  2. Verbindingsreeksparameters voor Schema.ini

  3. Tabelkolomnamen ophalen in MySQL?

  4. JetShowPlan:een primeur