scala - 通过 UCanAccess 连接到系统 DSN

标签 scala jdbc odbc dsn ucanaccess

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

最佳答案

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 上,名为 MyDB 的系统 DSN 的信息将在 Windows 注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyDb

也许

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

关于scala - 通过 UCanAccess 连接到系统 DSN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656127/

相关文章:

scala - 将特定的依赖项添加到 SBT 打包的 jar 文件中

java - 从非常大的结果集中呈现数据的最佳方式是什么?

java - 适用于 Java 7 的 JDBC 驱动程序

odbc - 来自火星的 ODBC 是来自金星的 ADO/OLEDB 吗?

c# - 从 MySQL 到 MS Access 的 1GB 数据

scala - Apache Spark ALS - 它如何解决最小二乘问题?

scala - 发送到 `TestProbe` 的测试消息是否可能在 `TestActor.SetAutoPilot(pilot)` 之前到达

java - 如何修复 : java. lang.ClassNotFoundException : BasicSimulation for gradle gatlingRun task?

java - 数据截断 : Incorrect datetime value

sql - 在 SELECT 语句 : what's the optimal SQL approach? 之后需要行计数