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

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

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

我正在寻找一种方法来自动化这些.ADT文件及其架构的过程,基本上是其他任何东西。 几乎所有其他我过去必须使用的格式都运气不错,这个格式最麻烦。 我不需要索引,视图或其中任何一个。 我只需要将表导出为另一种格式,以便我可以处理一些数据。

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

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

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

谢谢!

追逐格雷

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

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

经过一番询问和搜索后,似乎没有像我一直在寻找的东西。

我今天早些时候花了一些时间根据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 

谢谢你的帮助,

追逐格雷