问题标签 [jackcess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1009 浏览

java - 使用 Java / Jackcess 从加密的 Access .mdb 中读取

我需要从加密的 Access 97 数据库中读取数据并试用 Jackcess 和 UCanAccess。

我正在使用 bouncycastle.org 的 jackcess-2.1.2.jar、jackcess-encrypt-2.1.0 和 bcprov-jdk15on-152.jar

由于 UCanAccess 在内部使用 Jackcess,我在所有其他尝试中都遇到了同样的错误。

最后一行调用了一个错误,这里是堆栈跟踪:

0 投票
1 回答
759 浏览

java - 为什么UCanAccess 需要密码而Jackcess 不需要?

最近我一直在使用(测试)这两种解决方案来从 Access(MDB 文件)中获取一些数据。而且我认为 Jackcess 不需要密码来访问数据库的数据,而 UCanAccess 只有在我插入密码时才有效(如果数据库有)。

那么,wtf真的发生了吗?如果 Jackcess 是 UCanAccess 的依赖项,为什么它需要密码?或者为什么 Jackcess 也不需要密码?

谢谢!

0 投票
1 回答
233 浏览

java - 如何在 Java 中将字符串值转换为日期?

我正在尝试从访问(MDB)数据库中转换一些日期值。

我得到这个:'Tue May 17 08:29:00 BRT 2011'。但我想要这个:'2011-05-17 08:29:00'。

我已经尝试使用 JAVA 8 新的 DateTime 类但没有用。

这是我尝试过的:

但我明白了

“线程“JavaFX 应用程序线程”中的异常 java.time.format.DateTimeParseException:无法在索引 0 处解析文本 'Tue May 17 08:29:00 BRT 2011'

0 投票
1 回答
1122 浏览

jackcess - 列出 mdb 文件中的所有表

有没有办法列出 MDB 文件中所有表的名称?我正在尝试创建一个程序来测试用户的 Quizbowl 问题。我想组织问题和答案,以便每个问题集都位于自己的表格中。简而言之,我对 Jackcess 的 API 不熟悉 - 我曾尝试搜索是否有一种方法可以做到这一点,但失败了。

谢谢你。

0 投票
1 回答
645 浏览

java - 调用 executeUpdate 时的 UCanAccess/Jackcess 异常禁用了我的 Logger 输出

我正在使用 UCanAccess 来操作 Access 数据库。调用时executeUpdate出现异常:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.2 意外的页面类型 1 (Db=db.accdb;Table=MyTable;Index=PrimaryKey)

它仅在尝试更新一个特定行时发生 - 我已经知道如何在 Access DB 中解决此问题。

问题出在记录器上,在引发此异常并捕获它之后,我记录了一条信息消息但未显示,所有下一条日志消息也未显示。

我想在不修复数据库的情况下修复它的原因是,当它发生一次时,用户应该关闭应用程序以记录下一个操作,如果他不这样做,那么我将无法知道他做了什么。

这是我的代码:

控制台输出为:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.2 net.ucanaccess.commands.CompositeCommand.persist(CompositeCommand.java:95 处的意外页面类型 1 (Db=db.accdb;Table=myTable;Index=PrimaryKey) ) 在 net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:315) 在 net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:205) 在 net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java: 161) 在 net.ucanaccess.jdbc.ExecuteUpdate.execute(ExecuteUpdate.java:50) 在 net.ucanaccess.jdbc.UcanaccessPreparedStatement.executeUpdate(UcanaccessPreparedStatement.java:253) 在 rashi.NewClass.main(NewClass.java:61) 引起作者:java.io.IOException:com.healthmarketscience.jackcess.impl.IndexData 中的意外页面类型 1 (Db=db.accdb;Table=myTable;Index=PrimaryKey)。isLeafPage(IndexData.java:1185) at com.healthmarketscience.jackcess.impl.IndexData.readDataPage(IndexData.java:1067) at com.healthmarketscience.jackcess.impl.IndexPageCache.readDataPage(IndexPageCache.java:267) at com.healthmarketscience .jackcess.impl.IndexPageCache.getDataPage(IndexPageCache.java:224) 在 com.healthmarketscience.jackcess.impl.IndexPageCache.getCacheDataPage(IndexPageCache.java:211) ....爪哇:211)......爪哇:211)......

内部异常

我的日志文件只包含这一行:

这意味着我的记录器不再活动。我猜在 UCanAccess 异常之前有一些记录器更改。

0 投票
1 回答
538 浏览

java - 使用带有 JCIFS 的 Jackcess 来操作 SMB 共享上的 Access 数据库

我需要使用 Jackcess 在 Java 中处理 MS Access 文件。该文件位于 SMB 共享上,因此我认为我必须使用 JCIFS。

我试过这个

但是,它说 SMBFile 不能转换为 File

线。另外,如果我尝试使用“smbFilestream”,它会说它也无法将 SmbFileInputStream 转换为 File。

我是否必须将文件复制到本地机器或完全不同的东西?如果我该怎么做?

(顺便说一句,我是 Windows 用户。我只是将我的应用程序转换为 Mac,如果我的行话不可用,我很抱歉。)

0 投票
1 回答
790 浏览

character-encoding - 使用 iso-8859-1 在 wildfly 中打开 ucanaccess/jackcess 数据库

我与 Wildfly 9.0.2 中定义的 MS Access 2000 数据库建立了连接。工作正常。我使用命令行 UCanAccess 运行它,-Dfile.encoding=ISO-8859以便在 Ubuntu 上正确显示国家字符(挪威语)。在 OS X 上,命令行正确显示国家字符,无需任何 jre 选项。然而,Wildlfy 实例也在 OS X 上运行,并且不能正确显示国家字符(目前它们只是在一个简单的测试中写入控制台)在任何基于 java 的 sql 客户端(如 DBeaver 或 SQLSquirrel)中使用 UcanAccess-driver “正常工作“说到字符集。但是,通过 JPA 和 wildfly 查询数据库,国家字符被替换为“?”。

所以,有一种方法可以在 jdbc-url 上为 Jackcess 指定一个实用的“opener”:

“开瓶器”看起来像这样:

(是的,异常处理至少应该发出警告。)

所以我把它打包成一个 jar 文件(maven),去掉了 wildfly 中旧的连接、驱动和模块定义。然后我添加了这个 jar 文件以及 ucanaccess 模块的其他文件(ucanaccess 本身、hsqldb 等),重新创建了驱动程序和连接,现在使用 opener 参数,并使用它重新部署了战争。但是野蝇抱怨:

很明显,url 参数已被拾取,但找不到该类,即使它与驱动程序的其他 jar 一起部署。该类实际上在 jar 文件中。但是我需要从其他 jar 中的任何其他 MANIFEST.INF 类路径中引用它吗?

0 投票
1 回答
247 浏览

ms-access - 如何使用 B4A 和 Jackcess 更新具有 Double 值的行?

我正在使用 B4A(以前是:basic4android)和 Jackcess 创建一个 MS Access 数据库。每次我尝试保存 Double 值时,我都会收到错误消息

JavaLangNumberFormatException 无效双精度:“null”。

如何使用 B4A 和 Jackcess 使用 Double 值更新 Access 字段?

0 投票
1 回答
103 浏览

java - 无法使用 getSystemTable 和 findFirstRow 通过 Jackcess 删除表

findFirstRow当我尝试使用 Jackcess 查找需要删除的行以删除表时,为什么无法光标?

ps:没有报告异常

0 投票
2 回答
2093 浏览

java - Ucanaccess 太慢了

我已经正确添加了所有必要的 JARS:

  • Ucanaccess 3.0.4
  • commons-lang-2.6
  • 公共日志记录-1.1.1
  • 数据库
  • jackcess-2.1.3

我的数据库是 100MB。仅使用 Jacksess 时,相同的查询需要 4-5 秒,而这一查询大约需要 1-2 分钟。我做了一些研究,发现 Ucanaccess 镜像了整个数据库。我怎样才能禁用它?还是有必要?

我也尝试了参数(内存、singleConnection、skipIndexes),但它没有改变任何东西。

我必须使用 UcanAccess,因为我想使用 JasperReports。为此,我需要一个有效的连接。

我的代码: