2016-07-29 7 views
3

Я сейчас обновляю проект с Java 7 до Java 8, поэтому я переключился с использования JDBC-ODBC Bridge на использование UCanAccess. База данных Я хочу подключиться к регистрируется как системный DSN, так что я подключен к нему, как это:Подключиться к системному DSN через UCanAccess

Database.forURL("jdbc:odbc:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "sun.jdbc.odbc.JdbcOdbcDriver") 

Теперь я изменил, что

Database.forURL("jdbc:ucanaccess:MyDB" + ";DB_CLOSE_DELAY=-1;charSet=Cp1250", driver = "net.ucanaccess.jdbc.UcanaccessDriver") 

, но это дает мне ошибку:

Driver net.ucanaccess.jdbc.UcanaccessDriver does not know how to handle URL jdbc:ucanaccess:MyDB;DB_CLOSE_DELAY=-1;charSet=Cp1250 

Есть ли способ получить доступ к DSN через UCanAccess?

ответ

2

Is there a way to access a DSN via UCanAccess?

Непосредственно. UCanAccess - это драйвер JDBC, который не использует ODBC, поэтому он не знает о DSN ODBC.

строка подключения UCanAccess необходимо указать путь к файлу базы данных Access, например,

jdbc:ucanaccess://C:/path/to/mydata.accdb 

При необходимости, можно получить, что путь к файлу из информации о конфигурации с ODBC DSN. В Windows, информация для системы DSN с именем MyDB будет находиться в реестре под

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb 

или, возможно,

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\MyDb