为什么我的ODBC连接在Visual Studio中运行SSIS加载时失败,而在使用Execute Package Utility运行相同的包时则失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的ODBC连接在Visual Studio中运行SSIS加载时失败,而在使用Execute Package Utility运行相同的包时则失败相关的知识,希望对你有一定的参考价值。

我正在SSIS 2012中处理数据集市加载包。当尝试在Visual Studio中执行包时,我收到此错误:

“AcquireConnection方法调用连接管理器Data Warehouse.ssusr失败,错误代码为0xC0014009”。

当我测试Connection Manager Data Warehouse.ssusr的连接时,我看到它通过了。

当我使用Execute Package Utility在Visual Studio外部执行包时,包运行。

我不明白发生了什么。

该程序包还拒绝使用SQL Server作业计划运行,如果这与任何事情有关。

答案

在这里做一些假设,但我将假设这是一个32对64位的问题。要进行验证,请从命令提示符处尝试这两个命令(Windows Key,R,cmd.exe或Start,Run,cmd.exe)

"C:Program Files (x86)Microsoft SQL Server110DTSBinndtexec.exe" /file C:myPackage.dtsx
"C:Program FilesMicrosoft SQL Server110DTSBinndtexec.exe" /file C:myPackage.dtsx

第一个将以32位模式运行程序包,而第二个以64位模式运行程序包。这很重要,因为您的驱动程序和您创建的任何DSN仅在32/64位世界中可见。

修复SSDT

一旦确定了所需的版本(可能是32位版本),就需要确保项目使用适当的运行时。右键单击项目并选择Properties,然后导航到Configuration Properties下的Debugging选项卡。

在反转Run64BitRuntime值之后,我假设您的包将在SSDT内工作。

修复SQL代理

您需要编辑现有的SQL代理作业以更改作业步骤的比特。这将位于“配置”选项卡下,然后位于“高级”选项卡下。选中/取消选中32位运行时。

谎言和欺骗

细心观的人可能会看到dtexec提供/X86选项。不要相信。获得正确位的唯一方法是显式调用正确的dtexec.exe文档甚至说尽可能多但没有人阅读文档。

此选项仅供SQL Server代理使用。如果在命令提示符下运行dtexec实用程序,则忽略此选项。

以上是关于为什么我的ODBC连接在Visual Studio中运行SSIS加载时失败,而在使用Execute Package Utility运行相同的包时则失败的主要内容,如果未能解决你的问题,请参考以下文章

请问大家在visual studio2010中如何通过代码连接MySQL数据库。通过设置连接字符串的那种

将 SQLite 与 Visual Studio 2008 和 Silverlight 一起使用

visual studio 2008 (ssis连接oracle数据库)未在本地计算机上注册OraOLEDB.Oracle.1

Visual Studio Xampp 数据连接

无法连接到 Visual Studio 中的 SQL Server

Visual Studio 2010无法连接到MySql服务器