为什么我的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