通过UCanAccess连接到系统DSN

时间:2016-07-29 10:09:31

标签: scala jdbc odbc dsn ucanaccess

我目前正在将项目从Java 7升级到Java 8,因此我从使用JDBC-ODBC Bridge切换到使用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?

1 个答案:

答案 0 :(得分:2)

  

有没有办法通过UCanAccess访问DSN?

不直接。 UCanAccess是一个不使用ODBC的JDBC驱动程序,因此它不了解ODBC DSN。

您的UCanAccess连接字符串需要包含Access数据库文件的路径,例如

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

如有必要,可以从ODBC DSN的配置信息中检索该文件路径。在Windows上,名为MyDB的系统DSN的信息将位于

下的Windows注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb

或者

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