我需要(定期)将存储在FoxPro数据库中的数据移动到SQL。 我一直试图让 this 无效......
我最终发现了 link ,这似乎会产生更好的结果......
另外,我是一个完整的SSIS n00b,我实际上今天才第一次启动IDE。
到目前为止,我已经完成了以下操作......(如果没有必要,请原谅我使用的图片)
(我还将Run64BitRuntime设置为false,我在某处读到FoxPro ODBC驱动程序是32位,所以不知道它是否有帮助/因为我在打开或关闭此设置时会出现相同的错误)< / p>
1。)创建了控制流程&amp;为它添加了一个数据流任务
2.)创建了与SQL Destination和我的FoxPro Source的连接并将它们链接起来
3。)执行时我收到错误
我也在执行结果页面上看到了这一点(没有意识到一旦它附加它将是这个小小的......) 但它基本上是
[OLE DB Source 1]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。
对连接管理器“\ foo \ c $ \ bar”的AcquireConnection方法调用失败,错误代码为0xC0209303。
在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。
4.)然后我看了一下我的FoxPro连接,据我所知它看起来很好。 (就像一个FYI。我不确定FoxPro数据库是如何工作的,(我也是全新的),但它似乎是一堆松散的文件,例如db中每个表的1个文件,所以我'我不确定我是否可以连接到单个文件/它应该是一个目录还是什么)
任何想法......:\
更新 第3步比我注意到的更多。
[连接管理器“\ foo \ c $ \ bar”]错误:SSIS错误代码DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR。请求的OLE DB提供程序VFPOLEDB.1未注册 - 也许没有64位提供商可用。错误代码:0x00000000。 OLE DB记录可用。来源:“Microsoft OLE DB服务组件”Hresult:0x80040154描述:“类未注册”。
如何让程序包以32位模式执行?
答案 0 :(得分:3)
从项目属性中将RUN 64设置为False。
答案 1 :(得分:2)
我在我的问题中重复了我的确切步骤。在查看我的原始帖子(确切地说是第3点)之后,您会看到一个部分:
没有ID属性的值
从下图:
这有点学习阅读错误。我从来没有映射过两个源/表(由我的SSIS缺乏经验引起)。
关于复制数据:
对于遇到过这篇文章的人来说,THIS是我将数据复制到SQL DB的确切路径(解决方案1)
- 创建新的SQL Server Integration Services(SSIS)包。
- 添加数据&gt;流程任务(DFT)到包。
- 选择DFT,然后转到数据流设计器页面。
- 将OLE DB源添加到包中。
- 双击OLE DB源,单击“新建”&gt; “新建”以创建与Visual FoxPro的连接。
- 在Connection Manager中,请选择“Microsoft OLE DB Provider for Visual FoxPro”并键入Visual FoxPro数据库的文件路径(例如C:\ Address.dbc)。
- 点击“测试连接”按钮测试连接点击“确定”&gt;申请“OK”。
- 现在,我们可以在OLE DB Source编辑器中从Visual FoxPro数据库中选择一个表。
答案 2 :(得分:1)
我很惭愧地告诉你,我花了大约40个令人沮丧的时间来解决这个问题。但不可能。但是,我找到了解决方法。
启用程序包配置时会出现此问题。在这种情况下,您需要手动修改connectionstring并添加Password = myPassword;到它然后执行包。它工作..