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

时间:2016-08-12 10:41:30

标签: .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()

尝试打开连接会引发FbException,并显示消息“不可用的数据库”。

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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