0

我正在寻找从进度数据库(v10.2b)中提取的最佳方法(或几个可供选择的好方法)。最终目标将是 SQL Server (v2008)。我说“最终目标”,因为我不一定要从 SQL Server 中直接连接到 Progress,即我不反对从 Progress 提取到文本文件,然后将其导入 SQL Server。

我对方法的研究提出了与我不匹配的方案;

  • 将整个 Progress DB 迁移到 SQL Server
  • 将整个表从 Progress 导出到 SQL Server
  • 使用特定于进度的工具,我无权访问

我能够使用 ODBC 连接到 Progress,并在 Visual Studio (v2010) 中编写了一些查询。我还针对 Progress 数据库进行了一些自定义编程,构建了一个简单的 Web 界面来证明一些事情。

因此,我的要求是使用 ODBC,并构建一个每天运行特定查询的例程。然后,此查询的结果将被导入 SQL Server 数据库。在此先感谢您的帮助。

更新
经过一些额外的研究,我确实发现我正在寻找链接服务器。给使用 SQL Server Express 的其他人的一些注意事项;

  • 如果您使用的是 SQL Server Express,您可能在桌面或 DTS 的“开始”菜单中看不到程序。我发现 DTSWizard.exe 嵌套在我的 SQL Server 程序文件(对我来说是 C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn)中,并且能够简单地创建一个快捷方式。
  • 此外,由于我使用的是 SQL Server 的 SQL Express 版本,因此无法保存我创建的包。因此,在创建包并运行一次之后,我只需重新运行包,并保存我的 SQL 以供将来使用。
4

2 回答 2

2

答案有点晚,但万一其他人想要这样做......

您可以使用链接服务器,但您会发现性能不如直接通过 ODBC 驱动程序连接,而且数据类型的转换可能意味着您无法访问某些表。尽管对于探索数据,链接服务器可能很方便。

如果您将 SSIS 与 ODBC 驱动程序一起使用(您将必须使用 ADO.NET 数据源),那么这将最有效地执行,并且您应该获得更准确的数据类型(请记住,正在进行的数据类型可以动态更改) .

如果您必须提取大量表格,我会查看 BIML 来帮助您实现这一目标。BIML(商业智能标记语言)可以帮助您动态创建许多可以从主包调用的 SSIS 包。然后可以安排或运行该主包,也可以根据需要运行任何子包。

于 2014-03-15T19:50:19.967 回答
0

您可以使用 OLE 连接到 Progress DB 吗?如果是这样,您可以使用SQL Server Linked Server来绕过提取到文件的需要,然后将其加载到 SQL Server 中。或者,您可以提取到 Excel,然后从 Excel 导入到 SQL Server。

于 2013-01-29T14:46:11.037 回答