Как работать с mdb из-под Лазаруса?
Модератор: Модераторы
Как работать с mdb из-под Лазаруса?
есть проблемка: нужно в лазарусе из мдб в оракл данные перебросить
с ораклом вроде разобрались - и вручную и программно можно менять настройки и доступы, сиквел запускать и т.д.,
а вот с аксесом проблема - понимает его только одибиси элемент и настройке он поддаётся только вручную,
а фишка программы как раз в том, что каталог и имя файла mdb передаётся параметром и нужно из него в общую базу оракловую сливать...
подскажите плиз, как всё-таки с mdb данные получать? кто-то пытался?
с ораклом вроде разобрались - и вручную и программно можно менять настройки и доступы, сиквел запускать и т.д.,
а вот с аксесом проблема - понимает его только одибиси элемент и настройке он поддаётся только вручную,
а фишка программы как раз в том, что каталог и имя файла mdb передаётся параметром и нужно из него в общую базу оракловую сливать...
подскажите плиз, как всё-таки с mdb данные получать? кто-то пытался?
AlexCriv писал(а):из мдб в оракл данные перебросить
Oracle dblink
Oracle dblink
Извините, а нельзя ли поподробнее?
Oracle dblink с mdb тоже работать может?
AlexCriv писал(а):Извините, а нельзя ли поподробнее?Oracle dblink с mdb тоже работать может?
Может.
http://www.sql.ru/faq/faq_topic.aspx?fid=163
WAYFARER писал(а):Может.
http://www.sql.ru/faq/faq_topic.aspx?fid=163
это пример работы через odbc с excel, а у меня mdb
хотя проблема не в этом - вы предлагаете сделать аналогично, но есть ньюанс:
(о котором, кстати я упоминал выше) настроенный в системе odbc источник указывает на конкретный mdb файл, а мне нужно менять источники программно
AlexCriv писал(а):это пример работы через odbc с excel, а у меня mdb
По аналогии. Таким образом можно работать со всем, для чего существует ODBC драйвер
AlexCriv писал(а):настроенный в системе odbc источник указывает на конкретный mdb файл, а мне нужно менять источники программно
А что мешает? SQLConfigDataSource вам в руки.
http://msdn.microsoft.com/en-us/library/ms716476.aspx
WAYFARER писал(а):А что мешает? SQLConfigDataSource вам в руки.
http://msdn.microsoft.com/en-us/library/ms716476.aspx
мешает мультиплатформенность, мы для того на лазарус и перелезли, чтобы на всяких линях наши проги шли, а SQLConfigDataSource - это же апи считай оно тока под виндой покатит
AlexCriv писал(а):мешает мультиплатформенность
mdb и мультиплатформенность - вещи слабо совместимые. Единственный кроссплатформенный код для чтения mdb, насколько мне известно, это mdbtools (см. выше).
С mdbx (MSOffice 2007+) - может быть слегка получше, если mdbx - такой же зипованый XML, как и docx, xlsx и т.п. (не помню наверняка). Тогда процесс чтения данных сводится к распаковке mdbx-файла как zip-архива и разбору извлеченных xml-файлов.
Может UniDAC ? У них есть версия для Lazarus под Linux. Если она такая же как и под Win, то должна поддерживать и mdb.
http://www.devart.com/unidac/download.html
Добавлено спустя 4 часа 39 минут 19 секунд:
Только что посмотрел, под линукс UniDAC нет провайдера работающего с Access.
Так, что конвертируйте MDB во чтото нормальное и работающее на всех платформах и выкиньте Access.
Добавлено спустя 16 минут 12 секунд:
А конвертировать могут помочь вот эти утилиты
http://www.devart.com/ru/dbforge/oracle/studio/ (по идее должен мастер импорта)
http://www.sqlmanager.net/en/products/oracle/dataimport (ну а эта для импорта создана)
http://www.devart.com/unidac/download.html
Добавлено спустя 4 часа 39 минут 19 секунд:
Только что посмотрел, под линукс UniDAC нет провайдера работающего с Access.
Так, что конвертируйте MDB во чтото нормальное и работающее на всех платформах и выкиньте Access.
Добавлено спустя 16 минут 12 секунд:
А конвертировать могут помочь вот эти утилиты
http://www.devart.com/ru/dbforge/oracle/studio/ (по идее должен мастер импорта)
http://www.sqlmanager.net/en/products/oracle/dataimport (ну а эта для импорта создана)
А может есть возможность просто отказаться от использования mdb?
Как вариант перенести все таблицы из mdb скажем в firebird и связать с ним mdb через odbc заменив таблицы в mdb связанными таблицами с теми же названиями. Это позволит продолжать работать в access и одновременно писать интерфейс к тем же данным на Lazarus
