具有链接数据库的UCanAccess:数据库更新后映射丢失

时间:2018-11-27 09:03:56

标签: ms-access ucanaccess remap

我对以下设置有疑问:

我们有一个由链接数据库组成的Access数据库。链接是硬编码的,并且在安装网络驱动器的路径中使用Windows驱动器号,例如N:\ db。链接的文件总和为250mb。 Access db当前由少数有权访问服务器驱动器N:的人使用。 链接结构:

  • 主:N:\ db \ office \ main.mdb
  • 已链接:N:\ db \ data.mdb

现在,我们要为服务器应用程序(Linux,DB2,Java,Spring,UCanAccess)从Access数据库中读取和写入一些数据实现临时解决方案。在将来的版本中,Access db将被该应用程序替换,但是我们都需要一段时间才能过渡。

我在linux下安装了网络驱动器,并使用remap选项摆脱了Windows网络驱动器号。此外,我们使用以下选项:memory = true; skipIndexes = true;

一切都很好:我启动了Spring应用程序,并随后多次从链接的数据库中读取值。初始连接需要一些时间(大约40秒),但可以(大文件,网络驱动器)。

该问题在第一次或第二次写入数据库后出现。此后,随后的读取或写入失败,并显示错误消息:(链接的!)数据库表不可用:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.4 user lacks privilege or object not found: MYTABLENAME
at net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:230)

在发生此异常之前,驱动程序会打印出一条警告,指出找不到链接的数据库文件:

WARNING:given file does not exist: N:\db\data.mdb

我建议重新映射会以某种方式丢失。

我尝试了很多事情,例如关闭连接;或明确不关闭异常;持有该连接的参考;每次都要求驾驶员重新建立连接。所有这些都导致相同的行为。

非常感谢您的帮助!

Lutz

0 个答案:

没有答案