SSIS:不同驱动程序的两个不同错误。一个是32位,另一个是64位。以32位运行会导致另一个驱动程序失败

时间:2016-06-17 19:20:51

标签: sql-server excel ssis sql-server-2012

我正在开发一个SSIS包,它连接到服务器并将数据转储到Excel文件中,然后通过电子邮件将该excel文件发送到客户端。 我使用ADO.net(提供商:.Net Providers \ Odbc数据提供程序)驱动程序连接到服务器,它是64位和excel目标连接我本地的文件。 当我开始在我的SSDT中使用属性Run64BitRUNtime = true运行包时,我收到了以下错误。

 Source: CFEReport Connection manager "Excel Connection Manager"     Description: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver is not installed, run the package in 32-bit mode. Error code: 0x00000000.  An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".  End Error  Error: 2016-06-17 13:27:56.81     Code: 0xC020801C     Source: CFE Report Generation Excel Destination [32]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209303.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.  End Error  Error: 2016-06-17 13:27:56.82     Code: 0xC0047017     Source: CFE Report Generation SSIS.Pipeline     Description: Excel Destination failed validation and returned error code 0xC020801C.  End Error  Error: 2016-06-17 13:27:56.82     Code: 0xC004700C     Source: CFE Report Generation SSIS.Pipeline     Description: One or more component failed validation.  End Error  Error: 2016-06-17 13:27:56.82     Code: 0xC0024107     Source: CFE Report Generation      Description: There were errors during task validation.

所以我通过互联网搜索并发现我应该设置该属性Run64BitRUNtime = false并以32位运行它。我尝试了,我能够成功运行它。 但是,当我尝试在SQL Server 2012中运行它作为创建作业并每天运行它时,我得到以下错误。 (我还在SQL作业中设置了属性,通过检查执行选项中的Use 32 Bit runtime选项在32位环境中运行它)

 Microsoft (R) SQL Server Execute Package Utility  Version 11.0.6020.0 for 32-bit  Copyright (C) Microsoft Corporation. All rights reserved.    Started:  1:19:17 PM  Error: 2016-06-17 13:19:17.98     Code: 0xC0208449     Source: CFE Report Generation RAR TableQuery [93]     Description: ADO NET Source has failed to acquire the connection {F2DAE648-B39C-4F43-8EBE-BBA6E11EC7AA} with the following error message: "ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application".  End Error  Error: 2016-06-17 13:19:17.98     Code: 0xC0047017     Source: CFE Report Generation SSIS.Pipeline     Description: RAR TableQuery failed validation and returned error code 0xC0208449.  End Error  Error: 2016-06-17 13:19:17.98     Code: 0xC004700C     Source: CFE Report Generation SSIS.Pipeline     Description: One or more component failed validation.  End Error  Error: 2016-06-17 13:19:17.98     Code: 0xC0024107     Source: CFE Report Generation      Description: There were errors during task validation.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  1:19:17 PM  Finished: 1:19:17 PM  Elapsed:  0.78 seconds.  The package execution failed.  The step failed.

你能帮忙解决这个问题吗?提前致谢 我想用64位运行这个包我应该怎么做才能使用它。

4 个答案:

答案 0 :(得分:3)

32位空间中存在一个驱动程序,64位中存在一个驱动程序,而twain永远不会满足。您可以选择在相对的空间中找到驱动程序,或者将程序包分成两个单独的程序包,以便您可以使用32位dtexec和一个64位dtexec运行一个。在这种情况下,RAW文件目的地/来源可能会有所帮助。

答案 1 :(得分:1)

最近,当我们将SSIS包部署到64-bit的DEV SQL Server时,我遇到了这个问题。

解决方案是在64-bit SQL Server 服务器

上安装64-bit版本的_64

请务必选择exe名称中64-bit的名称,如下所示。

Microsoft Access Database Engine 2010 Redistributable

此可再发行组件是包含MS Access,MS Excel和MS Word在内的所有办公文件使用的Microsoft.Jet.OLEDB.4.0版本[[ -r /etc/java/java.conf ]] && . /etc/java/java.conf export JAVA_HOME 版本的驱动程序。所以不要担心它的名字。

答案 2 :(得分:0)

一个简单的解决方法是将文件保存为CSV,然后使用Excel打开它。这将允许您使用64位的偏好。另一种方法是尝试使用64位ODBC驱动程序。

Microsoft Access Database Engine 2010 Redistributable

(它声明它是Access数据库引擎,但如果您查看“其他信息”,它也会将Excel列为此程序包的一部分)

我很想知道这对你有什么帮助。

答案 3 :(得分:0)

所有答案基本上都是正确的,如果您实际运行的是未安装的64位驱动程序,那么指向您使用32位执行的文章并不会有帮助。由于@Shiva为您提供了大部分Excel工作所需的正确驱动程序。如果要运行32位,请选择32的AccessDatabaseEngine。如果要64获取64版本。更进一步,如果您想要保存为比Office 2010更旧的文件格式,那么您实际上也需要Access 2007驱动程序,并且必须在安装2010版本之前安装它。然后,如果您想使用2013及更新版本的excel,那么您实际上也需要更新的AccessDatabaseEngine驱动程序。

所以我做的是因为我从许多不同的来源获得Excel文件是我得到所有的Access数据库引擎驱动程序并按照从最旧到最新的顺序安装它们,我可以选择最适合我的工作与...合作。在您的情况下,因为您正在创建Excel文件,因此您可以更灵活地选择所需的驱动程序。

最后一部分。您将需要开发系统上的驱动程序以及实际运行SSIS作业的服务器。

相关问题