无法连接到共享驱动器上的数据库 - UCanAccess
Unable to connect to a database on a shared drive - UCanAccess
我已经将我的应用程序设置为通过 UCanAccess 连接到 Access 数据库,但是我无法连接到位于共享驱动器上的数据库。请参阅下面的示例。
String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb" \\ this works
String databasePath = "jdbc:ucanaccess://servername/etc/MyDB.accdb" \\ does not work and throws no suitable driver found exception
当我将共享驱动器上的文件夹映射到某个字母时非常有趣,例如P: - 连接成功。
String databasePath = "jdbc:ucanaccess://P:/servername/etc/MyDB.accdb" \\ this works
是否可以解决这个问题?我的用户对该文件夹具有 r/w 权限,但我不想在每台计算机上映射驱动器。
谢谢
数据库驱动程序只能处理他指定的协议。
大多数 jdbc 驱动程序只能处理其特定数据库服务器的网络协议。
您正在使用访问 jdbc 驱动程序,它只能处理对给定 accdb 文件的文件访问。
当您尝试 url 时:
jdbc:ucanaccess://servername/etc/MyDB.accdb
驱动程序使本地文件访问本地不存在的此路径。
您期望的是,驱动程序会与您的服务器建立 SMB/CIFS 连接,但他做不到!
您必须将 OS 上的 SMB/CIFS 共享映射到本地驱动器盘符。因为那时 OS 正在为您处理网络 SMB/CIFS 的东西。 JDBC 驱动程序可以像访问本地文件一样访问该文件。
您的连接中没有足够的正斜杠 URL 来表示 UNC 路径。正如您所注意到的,对于到 C:\Desktop\MyDB.accdb
的本地连接,您可以使用
String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb";
同样,对于 \servername\etc\MyDB.accdb
的 UNC 连接,您可以使用
String databasePath = "jdbc:ucanaccess:////servername/etc/MyDB.accdb";
我已经将我的应用程序设置为通过 UCanAccess 连接到 Access 数据库,但是我无法连接到位于共享驱动器上的数据库。请参阅下面的示例。
String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb" \\ this works
String databasePath = "jdbc:ucanaccess://servername/etc/MyDB.accdb" \\ does not work and throws no suitable driver found exception
当我将共享驱动器上的文件夹映射到某个字母时非常有趣,例如P: - 连接成功。
String databasePath = "jdbc:ucanaccess://P:/servername/etc/MyDB.accdb" \\ this works
是否可以解决这个问题?我的用户对该文件夹具有 r/w 权限,但我不想在每台计算机上映射驱动器。 谢谢
数据库驱动程序只能处理他指定的协议。 大多数 jdbc 驱动程序只能处理其特定数据库服务器的网络协议。
您正在使用访问 jdbc 驱动程序,它只能处理对给定 accdb 文件的文件访问。
当您尝试 url 时:
jdbc:ucanaccess://servername/etc/MyDB.accdb
驱动程序使本地文件访问本地不存在的此路径。 您期望的是,驱动程序会与您的服务器建立 SMB/CIFS 连接,但他做不到!
您必须将 OS 上的 SMB/CIFS 共享映射到本地驱动器盘符。因为那时 OS 正在为您处理网络 SMB/CIFS 的东西。 JDBC 驱动程序可以像访问本地文件一样访问该文件。
您的连接中没有足够的正斜杠 URL 来表示 UNC 路径。正如您所注意到的,对于到 C:\Desktop\MyDB.accdb
的本地连接,您可以使用
String databasePath = "jdbc:ucanaccess://C:/Desktop/MyDB.accdb";
同样,对于 \servername\etc\MyDB.accdb
的 UNC 连接,您可以使用
String databasePath = "jdbc:ucanaccess:////servername/etc/MyDB.accdb";