Я пытаюсь использовать файлы DBF из Java для новых утилит, которые взаимодействуют с большой старой системой. Я могу получить доступ, прочитать, записать, обновить с помощью моста Java ODBC, но это не обновляет индексы NTX. Я нашел xbasej, который утверждает, что может использовать индексы, но, похоже, может использовать только индексы NDX. Я всегда мог создать их перед использованием, но тогда он все равно не обновит NTX, используемые всеми другими программами. Здесь взаимодействуют несколько тысяч программ, поэтому просто перейти на NDX невозможно, а у меня нет бюджета.
Итак, мой вопрос: есть ли способ заставить xbasej использовать индексы NTX или нет, есть ли какая-либо другая бесплатная библиотека Java, которая может автоматически обновлять файлы NTX, если я открою их все перед редактированием базы данных?
О, и я перенаправил порт 6262 и даже проверил с полностью отключенным брандмауэром.
Любая помощь будет принята с благодарностью.
Я нашел драйверы Sybase Advantage ссылка, которые, очевидно, могут открывать файлы DBF и NTX, я могу используйте их программу Data Architect для создания словаря данных для доступа к моим данным, но я не могу понять, как использовать его с Java, все примеры, похоже, требуют какого-то подключения к серверу. Что-то вроде этого должно работать:
try {
Class.forName("com.extendedsystems.jdbc.advantage.ADSDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBFTest.class.getName()).log(Level.SEVERE, null, ex);
}
try {
ADSConnection conn = (ADSConnection) DriverManager.getConnection("jdbc:extendedsystems:advantage://localhost:6262;catalog=//llama-rog/c/stock/DD.add;user=master;password=master");
}catch (SQLException ex) {
Logger.getLogger(DBFTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
Каждый раз, когда я пытаюсь подключиться, я получаю:
com.extendedsystems.jdbc.advantage.ADSException: [iAnywhere Solutions][Advantage JDBC]Connection refused: connect
at com.extendedsystems.jdbc.advantage.n.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSConnection.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at dbftest.DBFTest.main(DBFTest.java:30)
Я искал несколько часов и нашел абсолютно сухой пример кода для подключения к локальному словарю данных (.add), в котором перечислены мои DBF и связанные с ними индексы. Кто-то упомянул об использовании псевдонима, который Data Architect создает в ADS.ini, но опять же нет никаких следов того, как это сделать. Файл Jar не поставляется с javadoc, только с некоторыми файлами справки HTML, которые я просмотрел и ничего не нашел.
Существует тестовое приложение, которое предположительно позволяет вам тестировать соединения, но по-прежнему требует, чтобы я вводил свою строку подключения, имя пользователя и пароль, и ни через словари данных, ни через свободные таблицы я не могу подключиться к чему-либо, я всегда получаю ту же ошибку.
Кто-нибудь знает, как заставить это работать. Тот факт, что он работает через их инструмент архитектора данных, доказывает, что он должен как-то работать, но как именно я могу скопировать эту функциональность, я не знаю.