Автоматизируйте преобразование файлов Sybase .ADT в SQL - PullRequest
2 голосов
/ 18 февраля 2010

Я работаю с некоторыми полученными данными, которые читаются программой, использующей встроенный сервер баз данных Advantage.Программа была написана не мной и не обладает всеми необходимыми мне функциями.Я хотел бы преобразовать эти данные в другой формат, чтобы я мог работать с ним более свободно, например, MySQL.

Я знаю, что Sybase предоставляет некоторые инструменты для преобразования одной локальной базы данных в SQL, что очень хорошо.Это будет работать нормально, за исключением того, что авторы этой программы создают новую папку, содержащую новую базу данных для каждого нового документа, с которым работает пользователь.Таким образом, могут быть сотни отдельных папок базы данных, каждая из которых содержит сотни файлов ADT.

Я ищу способ автоматизировать процесс преобразования этих .ADT-файлов и их схемы, в основном, во что-либо еще.Мне повезло больше с почти всеми другими форматами, с которыми мне приходилось работать в прошлом, этот был самым хлопотным.Мне не нужны индексы, представления или что-то из этого.Мне нужно только экспортировать таблицы в другой формат, чтобы я мог обработать некоторые данные.

Итак, решение, которое я ищу здесь, это просто способ автоматизировать преобразование локальной базы данных Advantage Database Server в SQL.Так что у меня есть папка .ADT файлов, которые представляют базу данных.

Я включил Ruby и Python в теги, потому что было бы идеально использовать один из этих языков сценариев, но любое решение было бы замечательно.

Маршрут, по которому я сейчас работаю, пытается работать с драйверами ODBC, но у меня возникли проблемы и я надеялся, что было более простое решение.

Спасибо!

Чейз Грей

Ответы [ 2 ]

2 голосов
/ 21 февраля 2010

После некоторого вопроса и поиска кажется, что нет ничего похожего на то, что я искал.

Сегодня я потратил немного времени на то, чтобы собрать что-то на основе драгоценного камня Ruby DBF. Я не закончил, но работает так, как я хочу. Мне придется закончить тесты и добавить экспорт 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

Спасибо за вашу помощь,

Чейз Грей

2 голосов
/ 18 февраля 2010

Advantage имеет драйвер dbi (Perl), который можно использовать для доступа к таблицам в их существующем формате ADT. Также есть драйверы JDBC и OLE DB. Посмотреть все из них на http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=13

Обратите внимание, что ссылка на драйверы версии 9.1. Вы можете получить драйвер, который равен или старше, чем сервер Advantage, который работает (если клиент не использует локальный сервер Advantage, в этом случае это не имеет значения).

...