简体   繁体   中英

The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server

I have the following code in a SQL Server database, recently we had migrated this database from a Server which is SQL Server 2008 R2 to another server which is SQL Server 2014.

IF EXISTS (SELECT 1 FROM sys.servers WHERE name = 'Excel_File_Src')
    EXEC sp_dropserver 'Excel_File_Src', 'droplogins'

EXEC sp_addlinkedserver 'Excel_File_Src',
        @srvproduct = 'ACE 12.0',
        @provider = 'Microsoft.ACE.OLEDB.12.0',
        @datasrc =  'E:\UCB_Data.xlsx' ,                
        @provstr = 'Excel 8.0;'

EXEC sp_addlinkedsrvlogin 'Excel_File_Src', 'false'

EXEC SP_TABLES_EX 'Excel_File_Src'

New SQL Server version is:

Microsoft SQL Server 2014 - Microsoft Corporation Developer Edition (64-bit) on Windows

It is used to run perfectly on old server, but after moving it to new server we getting below error.

The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.

Firstly the message is telling you the office bits you have installed on the box are the 32bit version. You need the 64 bit version. Secondly, make sure you aren't running the "Developer" edition in production because you aren't allowed - see EULA.

You Could Download Both x64 and x86 and run these commands to install them without conflicting with one another:

"C:\\AccessDatabaseEngine_x64.exe" /passive for 64-bit installation.

or

"C:\\AccessDatabaseEngine.exe" /passive for 32-bit installation.

Source: "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server

Isn't the error self explanatory which saying that 32bit driver can't be used with 64 bit installation. You need a 64-bit driver to solve this issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM