从Progress Database提取到SQL Server

时间:2013-01-26 18:53:09

标签: sql-server odbc progress-db

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

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

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

我可以使用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版本,所以我无法保存我创建的包。因此,在创建Package并运行一次之后,我只需重新运行该包,并保存我的SQL以供将来使用。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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