-->

如何共享Access数据库不同的PC的一个Java桌面应用程序?(How to share an A

2019-10-23 07:22发布

我创建在Java桌面应用程序(RCP插件),我使用的MS Access数据库对我的申请。

我一直在一些共享位置的数据库文件,但每当我尝试从不同的机器打开它,它抛出异常,说数据库已被其他人锁定。 请让我知道如何解决这个问题。

有没有办法共享使用JDBC连接不同的机器之间的MS Access数据库文件?

Answer 1:

号这就像给你的车几个人,他们都希望在同一时间驱动:不会的原因很​​多工作。

解决方法:

  1. 使用MySQL或H2实际的数据库。

  2. 创建其中谈到到Access数据库中的Java服务器。 让所有的其它程序跟这个服务器。

注意:当您使用方法#2“其他节目”你不能使用JDBC。 你必须写自己的协议。



Answer 2:

如果应用程序其实使用JDBC-ODBC桥(由建议的JDBC-ODBC对您的问题标签)和Microsoft Access ODBC驱动程序则 ,并发用户数量适中,应该可以使用Java应用程序的工作在共享的Access数据库。

在你的问题中描述的行为的最常见的原因是在Access数据库文件(.ACCDB或.mdb)中所在的文件夹的权限不够。 访问使用“锁定文件”(.laccdb或.LDB)来管理多个并发用户,以便所有用户都必须在文件夹上“变”的权限,使他们能够创建和/或更新锁文件。

例如,如果你的共享访问数据库驻留在服务器共享映射到Z:为所有用户驱动器和Java代码看起来是这样的...

// (Note: Only for Java 7 or earlier.)
String url = "jdbc:odbc:" +
        "Driver={Microsoft Access Driver (*.mdb, *.accdb)};" +
        "DBQ=Z:/test/myTest.mdb;";
try (Connection conn = DriverManager.getConnection(url)) {
    // do useful stuff here
} catch (Exception e) {
    e.printStackTrace(System.err);
}

...那么你需要确保所有用户对“Z:\测试”,“变更”权限的文件夹。

如需更详细的解释见我对方的回答在这里 。



Answer 3:

我相信有一些设置,你可以在MS Access多用户的选择做。 请按照下列步骤。 开放的MS Access(2016),导航到文件>选项>客户端设置>滚动到高级 -

默认打开模式:共享; 默认记录锁定:无锁;



文章来源: How to share an Access database to different pc's for a Java desktop application?