我正在开发一个使用具有Excel源的数据流任务的SSIS包。连接的提供者是Microsoft.ACE.OLEDB.12.0。
如果我将连接管理器指向计算机上的本地文件并在Visual Studio中运行该程序包,则会成功完成。
但是,如果我将连接管理器指向本地域上的UNC网络共享,并从Visual Studio运行该程序包,则会失败并显示以下消息:
错误:MyPackage上的0xC0202009,连接管理器" Excel连接管理器":SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:" Microsoft Access数据库引擎" Hresult:0x80004005说明:" Microsoft Access数据库引擎无法打开或写入文件''。它已由其他用户专门打开,或者您需要获得查看和写入其数据的权限。"。
错误:数据流任务中的0xC020801C,Excel源[2]:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接管理器" Excel连接管理器"失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。
更多信息:
答案 0 :(得分:1)
通过使用文件路径的变量然后使用该变量作为连接的ConnectionString属性的表达式来解决它。 我还将包含pash的变量中的反斜杠加倍,所以代替\ computer \ share \我使用了\\ computer \ share \。
我的猜测是斜线解决了问题,但我还没有测试并确定。