如何在远程数据库上解决Firebird"不可用的数据库"错误?

Fro*_*840 5 .net vb.net firebird

我有一个在远程Windows XP PC上运行的Firebird 2.0数据库.
使用ADO.net连接提供程序,我按如下方式配置连接:

Dim x As New FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder
x.Database = "[hostname]:FileShare:/db/REMOTE_SVR.FDB"
x.UserID = "SYSDBA"
x.Password = "masterkey"

Dim y As New FirebirdSql.Data.FirebirdClient.FbConnection(x.ConnectionString)
y.Open()
Run Code Online (Sandbox Code Playgroud)

尝试打开连接会引发FbException消息"不可用的数据库".

下载ODBC驱动程序并尝试连接这些设置会产生相同的错误消息.

我已将数据库文件复制到我的开发环境并验证我可以x.Database = "c:\testdb\REMOTE_SVR.FDB"使用这些设置连接(使用本地安装的Firebird 2.0 Server).

我已确认Firebird 2.0 Server正在远程PC上运行.数据库所在的文件共享不需要任何登录或权限.

我可能做了一些愚蠢的事,但我没有想法.

Mar*_*eel 6

默认情况下,Firebird不会打开位于网络共享上的数据库文件.该文件必须位于服务器的物理磁盘上.这样做是为了保护数据库免受因文件锁定不正确或不充分而导致的损坏(例如,当来自不同机器的多个Firebird服务器进程访问时).

因此,您需要将数据库移动到承载Firebird服务器进程的计算机的一个实际驱动器上.

  • @ Frosty840 通过指定主机名,您将连接到 Firebird 进程。所以`myserver:d:\database\mydatabase.fdb` 将连接到`myserver` 上的Firebird 服务器进程并要求它打开数据库`d:\database\mydatabase.fdb`。如果 `d:` 是本地驱动器,则可以,如果 `d:` 是网络共享,则失败。 (2认同)