简体   繁体   English

无法在 64 位 SQL Server 上加载 32 位 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”

[英]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.我在 SQL Server 数据库中有以下代码,最近我们将此数据库从 SQL Server 2008 R2 的服务器迁移到另一台 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:新的 SQL Server 版本是:

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.无法在 64 位 SQL Server 上加载 32 位 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”。

Firstly the message is telling you the office bits you have installed on the box are the 32bit version.首先,该消息告诉您安装在盒子上的办公位是 32 位版本。 You need the 64 bit version.您需要 64 位版本。 Secondly, make sure you aren't running the "Developer" edition in production because you aren't allowed - see EULA.其次,请确保您没有在生产中运行“开发人员”版本,因为您不被允许 - 请参阅 EULA。

You Could Download Both x64 and x86 and run these commands to install them without conflicting with one another:您可以同时下载 x64 和 x86 并运行这些命令来安装它们,而不会相互冲突:

"C:\\AccessDatabaseEngine_x64.exe" /passive for 64-bit installation. "C:\\AccessDatabaseEngine_x64.exe" /passive用于 64 位安装。

or或者

"C:\\AccessDatabaseEngine.exe" /passive for 32-bit installation. "C:\\AccessDatabaseEngine.exe" /passive用于 32 位安装。

Source: "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server来源: “Microsoft.ACE.OLEDB.12.0”无法在 64 位 SQL Server 的进程中加载

Isn't the error self explanatory which saying that 32bit driver can't be used with 64 bit installation.错误是不是自我解释说 32 位驱动程序不能与 64 位安装一起使用。 You need a 64-bit driver to solve this issue.您需要一个 64 位驱动程序来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法在64位SQL Server上加载“Microsoft.ACE.OLEDB.12.0” - “Microsoft.ACE.OLEDB.12.0” cannot be loaded in-process on a 64-bit SQL Server 无法为链接服务器初始化OLE DB提供程序“ Microsoft.ACE.OLEDB.12.0”的数据源对象 - Cannot initialize the data source object of OLE DB provider “Microsoft.ACE.OLEDB.12.0” for linked server 链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0” - The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" 链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“JOIN 操作中的语法错误”。 - OLE DB provider “Microsoft.ACE.OLEDB.12.0” for linked server “(null)” returned message “Syntax error in JOIN operation.” 运行SQL脚本的批处理文件得到错误对OLE DB提供程序'Microsoft.ACE.OLEDB.12.0'的临时访问已被拒绝。 - Batch file that runs sql script getting error Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied.' 从 excel 导入到 sql server:'Microsoft.ACE.OLEDB.12.0' 提供程序错误 - import from excel to sql server: The 'Microsoft.ACE.OLEDB.12.0' provider error SQL Server 2012在64位计算机上32位还是64位? - SQL Server 2012 32-bit or 64-bit on 64-bit machine? Microsoft.ACE.OLEDB.12.0无法执行查询 - Microsoft.ACE.OLEDB.12.0 Cannot execute the query Microsoft.ACE.OLEDB.12.0错误 - Microsoft.ACE.OLEDB.12.0 Error 无法为链接服务器创建 OLE DB 提供程序 Microsoft.Jet.OLEDB.4.0 的实例 null - Cannot create an instance of OLE DB provider Microsoft.Jet.OLEDB.4.0 for linked server null
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM