2010-02-18 3 views
2

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

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

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

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

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

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

Спасибо!

Chase Gray

ответ

2

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

Я потратил немного раньше, чем раньше, сегодня что-то собирал, основываясь на камне 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 

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

Chase Gray

2

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

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

+0

Давайте предположим, что у меня только есть один файл .ADT, представляющий одну таблицу. Нет ли простого способа конвертировать это или просто извлекать строки? –

+1

Существует утилита Advantage Data Architect (ARC), которая позволяет вам экспортировать/конвертировать таблицу в несколько разных форматов. Вы можете загрузить его из Advantage Developer Zone: http://devzone.advantagedatabase.com/. Просто загрузите версию ARC, которую использует ваш сервер ADS, или вы можете использовать DLL локального сервера, входящие в состав ARC, чтобы открыть таблицу локально, чтобы выполнить преобразование. – Joshery

Смежные вопросы