Доступ к NexusDB из Java

Я пытаюсь получить информацию из встроенной БД под названием NexusDB, используя Java.

Альтернатива 1:

Я прочитал на сайте NexusDB, что есть драйвер ODBC, поэтому я могу использовать его с unixODBC. Затем мне нужно сделать мост JDBC-ODBC, как указано здесь.

Альтернатива 2:

Получите какое-то приложение для переноса базы данных NexusDB в другую базу данных. Хотел бы знать один.

Я хотел бы знать, если кто-нибудь когда-либо это, какое лучшее решение?

Спасибо за прочтение.

4 ответа

Решение

Альтернатива 1:

Невозможно.

Для unixODBC нужны драйверы Linux, а для nexusDB - нет.

Альтернатива 2:

Не нашел ни одного.

Решение до сих пор

Написание небольшого веб-сервиса с Delphi или получить odbc и использовать его в небольшом прокси. Другими словами, вместо подключения к серверу nexusdb вы подключаетесь к выделенному приложению или веб-сервис передает информацию, и это приложение подключается к nexusd и записывает данные.

У меня был некоторый успех в запуске nexusDB под вином.

Я смог настроить WINEPREFIX, следуя приведенным здесь инструкциям, получить доступ к панели управления Wine odbc (по умолчанию она перенаправляет в unixODBC, и, как заметил Macarse, это тупик), настроить DSN и проверить, что он может получить к нему доступ. данные.

Следующим, что я попробовал, была установка win32 PHP и написание быстрого и грязного теста с использованием odbc_connect. Потратив немало времени на то, чтобы случайно использовать бинарный файл linux php и задуматься, почему он не может использовать (ТОЛЬКО встроенную на win32) функцию odbc_connect, я все заработал.

СОВЕТ: Чтобы избавиться от ощущения, что вы бьетесь головой о кирпичную стену, помните, что любые попытки запуска php-скриптов в этой среде ДОЛЖНЫ выглядеть так

WINEPREFIX=/home/you/yourprefix wine php c:\phptest.php

НЕ

WINEPREFIX=/home/you/yourprefix php c:\phptest.php

Вторая версия будет использовать бинарный файл Linux Linux. Чувствую себя довольно глупо после запуска второй версии добрую дюжину раз и погуглил ошибку, прежде чем понять, что было не так - я думаю, мне нужно встать позже, если я хочу, чтобы все еще работало в 4 часа утра:(

(путь c:\ в приведенных выше примерах может быть передан как /home/you/yourprefix/drive_c/whatever если предпочитаете - относительные пути тоже подойдут)

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

Если вы подключаетесь к Nexus через.NET, может быть, вы можете использовать IKVM для запуска вашего Java-приложения и подключения через.NET API?

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

Лучшие Андерс

Поскольку он встроен (и вы, вероятно, имеете полный доступ к компьютеру), как насчет копирования файлов базы данных в систему Windows, настройки NexusDB и ее драйвера ODBC, а затем использования моста ODBC-JDBC на этом компьютере? После запуска моста вы можете настроить новую JDBC-совместимую СУБД по вашему выбору, подключиться и использовать небольшой код для ВЫБРАТЬ из NexusDB и вставить в вашу новую базу данных.

Если вы хотите перейти на другую встроенную СУБД, я использую базу данных H2 для Java, и должен сказать, что это очень мило. И встроенный, и клиент-серверный режимы, кроссплатформенный и очень быстрый для всего, что меньше 1M строк. Поддерживает практически все функции, которые есть во встроенной СУБД, а затем некоторые.

Другие вопросы по тегам