问题标签 [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.
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,我在所有其他尝试中都遇到了同样的错误。
最后一行调用了一个错误,这里是堆栈跟踪:
java - 为什么UCanAccess 需要密码而Jackcess 不需要?
最近我一直在使用(测试)这两种解决方案来从 Access(MDB 文件)中获取一些数据。而且我认为 Jackcess 不需要密码来访问数据库的数据,而 UCanAccess 只有在我插入密码时才有效(如果数据库有)。
那么,wtf真的发生了吗?如果 Jackcess 是 UCanAccess 的依赖项,为什么它需要密码?或者为什么 Jackcess 也不需要密码?
谢谢!
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'
jackcess - 列出 mdb 文件中的所有表
有没有办法列出 MDB 文件中所有表的名称?我正在尝试创建一个程序来测试用户的 Quizbowl 问题。我想组织问题和答案,以便每个问题集都位于自己的表格中。简而言之,我对 Jackcess 的 API 不熟悉 - 我曾尝试搜索是否有一种方法可以做到这一点,但失败了。
谢谢你。
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 异常之前有一些记录器更改。
java - 使用带有 JCIFS 的 Jackcess 来操作 SMB 共享上的 Access 数据库
我需要使用 Jackcess 在 Java 中处理 MS Access 文件。该文件位于 SMB 共享上,因此我认为我必须使用 JCIFS。
我试过这个
但是,它说 SMBFile 不能转换为 File
线。另外,如果我尝试使用“smbFilestream”,它会说它也无法将 SmbFileInputStream 转换为 File。
我是否必须将文件复制到本地机器或完全不同的东西?如果我该怎么做?
(顺便说一句,我是 Windows 用户。我只是将我的应用程序转换为 Mac,如果我的行话不可用,我很抱歉。)
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 类路径中引用它吗?
ms-access - 如何使用 B4A 和 Jackcess 更新具有 Double 值的行?
我正在使用 B4A(以前是:basic4android)和 Jackcess 创建一个 MS Access 数据库。每次我尝试保存 Double 值时,我都会收到错误消息
JavaLangNumberFormatException 无效双精度:“null”。
如何使用 B4A 和 Jackcess 使用 Double 值更新 Access 字段?
java - 无法使用 getSystemTable 和 findFirstRow 通过 Jackcess 删除表
findFirstRow
当我尝试使用 Jackcess 查找需要删除的行以删除表时,为什么无法光标?
ps:没有报告异常
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。为此,我需要一个有效的连接。
我的代码: