无法使用 DBeaver 和默认的 UCanAccess-5.0.0 驱动程序连接到 MS Access mdb 文件

Posted

技术标签:

【中文标题】无法使用 DBeaver 和默认的 UCanAccess-5.0.0 驱动程序连接到 MS Access mdb 文件【英文标题】:Cant connect to MS Access mdb file using DBeaver and the default UCanAccess-5.0.0 driver 【发布时间】:2020-11-30 13:23:39 【问题描述】:

得到以下错误: UCAExc:::5.0.0-SNAPSHOT 意外令牌:需要 DOUBLE:FOR 意外令牌:需要 DOUBLE:FOR

我的连接字符串是: jdbc:ucanaccess:///mnt/toolboss-plt11/sps.mdb 其他所有内容都包含默认值。 我相信 mdb 文件是 Access 2000 格式的。我可以使用 Microsoft SSIS jet 4.0 驱动程序连接到此文件。

任何帮助将不胜感激。谢谢。

【问题讨论】:

您能否提供一个可用于重现问题的示例 .mdb 文件的下载链接? 谢谢你,戈德。这是一个工作数据库,所以我不能。您可以使用 DBeaver 连接到任何 Access 2000 类型的 mdb 文件吗? 是的,I can。您是在第一次尝试打开数据库时遇到错误,还是仅在尝试使用特定表或视图时遇到错误? 谢谢你,戈德。你能告诉我你的connection string和driver settings吗? 我的设置是当前 DBeaver 版本的开箱即用默认值:connection string 和 driver properties。 【参考方案1】:

您在 UCanAccess/HSQLDB 中遇到了错误。当我尝试使用 UCanAccess' console.bat 打开您的测试文件时,我看到了

C:\Users\Public\Downloads\UCanAccess>console.bat
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

Please, enter the full path to the access file (.mdb or .accdb): /home/gord/Desktop/test.mdb
Cannot execute:CREATE  CACHED TABLE RATIONING(ITEMTYPE INTEGER,ITEMKEY VARCHAR(50),ISSUETARGETTYPE INTEGER,ISSUETARGETKEY VARCHAR(50),MAXQTY INTEGER,PERIOD DOUBLE,PERIODTYPE INTEGER) unexpected token:
 DOUBLE required: FOR

PERIOD 似乎是 HSQLDB 2.5.0(UCanAccess 5.0.x 附带的版本)中的保留字。但是,在升级到 HSQLDB 2.5.1 后,相同的 CREATE 语句不会失败。

您应该在 SourceForge 上发布help request,要求 Marco 更新 UCanAccess 发行版中的 HSQLDB 版本。与此同时,您可以解决此问题。

下载UCanAccess-5.0.1.bin.zip并解压。我把我的副本放在“/home/gord/Downloads/JDBC/”中

进入“lib”文件夹并删除“hsqldb-2.5.0.jar”。下载hsqldb-2.5.1.jar替换即可。

在 DBeaver 中,右键单击您的连接并选择“编辑连接”。单击“编辑驱动程序设置”按钮并在“库”选项卡中删除 DBeaver 创建的“net.sf.ucanaccess.ucanaccess:RELEASE”条目。然后使用“添加文件”按钮从您的下载文件夹中添加五 (5) 个罐子

现在您应该可以打开您的 .mdb 文件了。

【讨论】:

谢谢你,戈德。非常感谢您的帮助!我确实向 Marco 填写了帮助请求。

以上是关于无法使用 DBeaver 和默认的 UCanAccess-5.0.0 驱动程序连接到 MS Access mdb 文件的主要内容,如果未能解决你的问题,请参考以下文章

dbeaver安装和使用教程

dbeaver安装和使用教程

dbeaver安装和使用教程

dbeaver安装和使用教程

多个 SQL 查询不适用于 DBeaver 上的分隔符

无法使用 DBeaver 连接到本地主机上的 MariaDB