自动将Sybase .ADT文件转换为SQL

时间:2010-02-18 15:00:07

标签: python ruby sybase advantage-database-server

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

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

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

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

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

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

谢谢!

蔡斯格雷

2 个答案:

答案 0 :(得分:2)

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

查看所有内容

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

答案 1 :(得分: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

感谢您的帮助,

蔡斯格雷