SSIS:以32位模式执行包,&从一个来源复制到另一个来源

时间:2012-01-27 11:07:12

标签: sql-server odbc foxpro ssis

我需要(定期)将存储在FoxPro数据库中的数据移动到SQL。 我一直试图让 this 无效......

我最终发现了 link ,这似乎会产生更好的结果......

另外,我是一个完整的SSIS n00b,我实际上今天才第一次启动IDE。

到目前为止,我已经完成了以下操作......(如果没有必要,请原谅我使用的图片)

(我还将Run64BitRuntime设置为false,我在某处读到FoxPro ODBC驱动程序是32位,所以不知道它是否有帮助/因为我在打开或关闭此设置时会出现相同的错误)< / p>

1。)创建了控制流程&amp;为它添加了一个数据流任务 Control Flow

2.)创建了与SQL Destination和我的FoxPro Source的连接并将它们链接起来

Dataflow

3。)执行时我收到错误 enter image description here

我也在执行结果页面上看到了这一点(没有意识到一旦它附加它将是这个小小的......) 但它基本上是

  

[OLE DB Source 1]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。
  对连接管理器“\ foo \ c $ \ bar”的AcquireConnection方法调用失败,错误代码为0xC0209303。
  在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。

enter image description here

4.)然后我看了一下我的FoxPro连接,据我所知它看起来很好。 (就像一个FYI。我不确定FoxPro数据库是如何工作的,(我也是全新的),但它似乎是一堆松散的文件,例如db中每个表的1个文件,所以我'我不确定我是否可以连接到单个文件/它应该是一个目录还是什么) Connection

任何想法......:\

更新 第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位模式执行?

3 个答案:

答案 0 :(得分:3)

从项目属性中将RUN 64设置为False。

答案 1 :(得分:2)

我在我的问题中重复了我的确切步骤。在查看我的原始帖子(确切地说是第3点)之后,您会看到一个部分:

  

没有ID属性的值

从下图:

does not have a value for the ID property

这有点学习阅读错误。我从来没有映射过两个源/表(由我的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;到它然后执行包。它工作..