2

我正在处理我获得的一些数据,这些数据是通过使用嵌入式 Advantage 数据库服务器的程序读取的。该程序不是我编写的,也没有我需要的所有功能。我想将此数据转换为不同的格式,以便我可以更自由地使用它,例如 MySQL。

我知道 Sybase 提供了一些工具,可以将单个本地数据库转换为 SQL,这非常好。这可以正常工作,除了该程序的作者为用户正在使用的每个新文档创建一个包含新数据库的新文件夹。因此,可能有 100 个单独的数据库文件夹,每个文件夹中都有 100 个 .ADT 文件。

我正在寻找一种方法来自动化将这些 .ADT 文件及其架构转换为其他任何内容的过程。我过去使用过的几乎所有其他格式都比较幸运,这个是最麻烦的。我不需要索引、视图或任何这些。我只需要将表格导出为另一种格式,以便我可以处理一些数据。

所以我在这里寻找的解决方案只是一种将单个 Advantage Database Server 本地数据库自动转换为 SQL 的方法。所以我有一个代表数据库的 .ADT 文件文件夹。

我在标签中包含了 Ruby 和 Python,因为使用其中一种脚本语言是理想的,但任何解决方案都会很棒。

我现在的路线是尝试使用 ODBC 驱动程序,但我遇到了麻烦,希望有一个更简单的解决方案。

谢谢!

追逐灰色

4

2 回答 2

2

经过一番询问和搜索,似乎没有我想要的东西。

我今天早些时候花了一点时间基于 Ruby DBF gem 将一些东西放在一起。我还没有完成,但它就像我想要的那样工作。我必须完成测试并添加 SQL 的导出等,但希望其他人能找到这个问题,并且可以从 .ADT 文件中检索信息,而无需安装任何东西。

这是该项目的链接。它可能会在晚上剩下的时间里进行。它现在非常少,但随着时间的推移,我可能会添加它。

http://github.com/chasemgray/Ruby-ADT http://chase.ratchetsoftware.com/2010/02/reading-advantage-database-server-files-adt-in-ruby/

现在取出数据应该就这么简单。

require 'adt'

table = ADT::Table.new("test.adt")

table.each do |record|
  puts record.name
  puts record.email
end

谢谢你的帮助,

追逐灰色

于 2010-02-20T23:27:32.500 回答
2

Advantage 有一个 dbi (Perl) 驱动程序,您可以使用它来访问现有 ADT 格式的表。还有 JDBC 和 OLE DB 驱动程序。在http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=13查看所有这些

请注意,该链接指向 9.1 版驱动程序。您将需要获取等于或早于正在运行的 Advantage 服务器的驱动程序(除非客户端使用 Advantage 本地服务器,在这种情况下无关紧要)。

于 2010-02-18T19:33:30.403 回答