我有一个SSIS包,用于读取Excel文件(数据流源),并使用OLEDB目标数据流Item.This包是通过使用SSIS对象模型NET应用程序所执行的数据传送到SQL Server。应用程序的子文件夹内存储在文件系统中的包。

在包工作正常我的开发/测试机上both.Both这些机器有32位WIN2K3。在SSIS是建立在BIDS 32Bit环境下。

当我DEPLOYE生产的机器上本申请具有WIN2K3 64标准版I得到的错误

发生一个OLE DB错误。错误代码:0x80040154的。一个OLE DB记录。资料来源:“微软的OLE DB服务组件” HRESULT:0x80040154的描述:“类未注册”。 该AcquireConnection方法调用连接管理器“Excel连接管理器”,错误代码为0xC0202009失败。 组件“Excel源”(630)验证失败并返回错误代码0xC020801C。

我在其他职位已经阅读了设置项目的属性Run64BitRuntime(在设计时)从BIDS运行时,它解决了上述问题。

如何设置通过SSIS对象模型这个属性。

下面是执行包的代码的部分

   _application = New Application()
   _package = New Package()
   _package = _application.LoadPackage(packageName, Nothing)
   _updateResult = _package.Execute()

由于

马苏德

有帮助吗?

解决方案

在Run64BitRuntime属性只适用于被包装的BIDS的内部运行。有没有必要运行BIDS的外表面时,设置该属性。

我相信你的问题是,在代码中运行时,包是在64位模式运行,但是,Excel不支持此。为了使这项工作,你需要掏出推出DTEXEC的32位版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top