2016-07-29 57 views
3

我目前正在將項目從Java 7升級到Java 8,因此我從使用JDBC-ODBC Bridge切換到使用UCanAccess。我想連接的數據庫註冊爲系統DSN,所以我連接到它是這樣的:通過UCanAccess連接到系統DSN

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 

有沒有辦法通過UCanAccess訪問DSN?

回答

2

Is there a way to access a DSN via UCanAccess?

不是直接。 UCanAccess是一種不使用ODBC的JDBC驅動程序,因此它不知道ODBC DSN。

你UCanAccess連接字符串需要包括路徑Access數據庫文件,例如,

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

如果有必要,你可以檢索從一個ODBC DSN的配置信息文件的路徑。在Windows上,對於系統DSN的信息命名MyDB將在Windows註冊表中下

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb 

或許

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