Windows 7 无法运行Firebird

Windows 7 无法运行Firebird,windows-7,firebird,Windows 7,Firebird,我正在运行Windows7的新计算机上安装Firebird(v1.5.5-我知道它很旧,但它可以工作)。我已将经典服务器版本作为服务安装。根据Firebird站点的文档,我修改了Firebird.conf文件,使IPCName为global\FirebirdIPI;我在服务未运行时执行此操作 尽管我付出了所有的努力,我仍然无法访问任何通过ISQL复制到这台新计算机上的数据库。FWIW,EMS SQL 2005管理器程序成功地访问了数据库,但该程序显然有一种直接方法,不需要fbclient.dll

我正在运行Windows7的新计算机上安装Firebird(v1.5.5-我知道它很旧,但它可以工作)。我已将经典服务器版本作为服务安装。根据Firebird站点的文档,我修改了Firebird.conf文件,使IPCName为global\FirebirdIPI;我在服务未运行时执行此操作

尽管我付出了所有的努力,我仍然无法访问任何通过ISQL复制到这台新计算机上的数据库。FWIW,EMS SQL 2005管理器程序成功地访问了数据库,但该程序显然有一种直接方法,不需要fbclient.dll

我还应该检查什么


几天后更新。在Windows 7上浪费了大量时间之后,我们决定降级计算机并运行XP。安装FB 1.5.5的超级服务器版本后,我可以运行我的程序并访问存储在此计算机上的数据库。尝试从网络上连接的其他计算机访问数据库失败,并显示各种错误消息,但通常类似于“文件i/o错误!”!火鸟\db\q400.fdb'

为了让网络上的人能够继续访问数据库,我恢复了NT服务器并启动了Firebird服务——所有程序都可以从远程计算机成功访问这些数据库

为了简化问题,网络上有三台计算机:

  • 运行Firebird服务的NT服务器(“zorcomp”);fdb文件位于这台计算机上名为“db”的目录中,该目录位于名为“firebird”的共享目录下
  • 一台运行XP的计算机,名为“kivserver”,它还有一个名为“firebird”的共享目录,下面有一个名为“programs”的目录。所有fdb文件的副本位于名为“db”的目录中
  • 运行XP的计算机,它将\zorcomp\firebird映射到磁盘L:和\kivserver\firebird映射到磁盘T。从这台计算机上,我可以运行位于T:\programs中的程序,并使其成功访问位于L:\db中的文件。如果我停止zorcomp上的FB服务,并在kivserver上启动相同的服务,则相同的程序无法访问位于T:\db中的文件
  • 我希望这足够清楚。就我的一生而言,我看不出\kivserver\firebird中的所有文件与\zorcomp\firebird中的所有文件之间有什么区别,但不知何故,这是有区别的

    显然,我不希望这种安排继续下去——NT服务器必须体面地退役。 进一步编辑。我现在让firebird服务器在“kivserver”(NT)上运行。我可以在本地访问数据库文件

    运行Win7的计算机现在可以使用连接字符串\\kivserver\firebird\db\database.fdb访问这些数据库文件

    运行XP的计算机无法访问这些数据库文件,尽管IIRC wisql使用\\kivserver\firebird\db\database.db成功

    NT服务器已与网络断开连接。 蒂亚,
    否'am

    AFAIK EMS SQL使用fbclient.dll(或其周围的包装器)

    如果您只想访问数据库,我建议您使用TCP协议而不是本地协议。要执行此操作,请按如下方式连接:

    c:\>isql localhost:c:\path\to\db.fdb -u sysdba -p masterkey
    

    除非您正在避免TCP或计算机没有启用本地接口,否则它将为您完成工作。

    尝试使用此连接到您的数据库:

    主机名:驱动器:\complete path\filename.fdb

    \主机名\drive\complete path\filename.fdb


    我可以知道您正在使用的组件吗?

    如果您的客户端是Windows 7,那么您可以尝试使用\\hostname\sharename\filename.fdb而不是驱动器:\filename.fdb连接字符串。

    几个月后,NT服务器在有人意外解锁后重新启动时显示“MBR error”时有点突然失效。因此,我别无选择,只能开始在“kivserver”上运行Firebird服务器程序。连接问题返回

    最终,我能够用下面的连接字符串解决这个问题

    10.0.0.202:e:\firebird\db\manager.fdb

    其中10.0.0.202是服务器的ip地址,e:\firebird\db是数据库所在的相对于服务器本身的目录


    我希望有一天,其他人会发现这些信息很有用。

    尽管我给出了答案,但我想说的是,我在windows 7中使用的是Firebird 2.1,从未接触过任何东西使其工作。。。您确定仍要使用Firebird 1.5吗?我相信你可以用Firebird 2直接打开Firebird 1.5文件(ODS),但我没有人要测试。我真正想要的是我的程序(用Delphi编写)可以访问数据库。他们使用的组件与Firebird 1.5配合使用。@JachGrate,尽管可能会起作用,但最好不要打开具有较高Firebird版本的较低ODS文件,以避免可能的损坏。你能做的最好的事情是使用它的1.5版本中的GBAK实用程序来备份数据库并用GBAK 2恢复它以获得一个2数据库文件。@ NeMeNeman,这是偏离主题的,但是你可以考虑使用ZeOS组件。它们是免费的,用Delphi开发,在Firebird 2.0和2.1上运行良好。@No'am Newman:它是哪个组件?你确定它无法连接到Firebird 2.x吗?我昨天尝试了这个,但没有成功。使用字符串“t:\db\q400.fdb”(文件的位置在本地计算机上映射为“t”的网络磁盘的目录“db”中)时,错误消息是“文件的i/o错误”\!火鸟\db\q400.fdb'。使用字符串“\kivserver\firebird\db\q400.fdb”(即\hostname\drive\complete path\filename.fdb)时,结果是“未知数据库”。我正在尝试我自己的程序(使用dbExpress组件)和一个名为“mywisql”的程序,该程序可能会执行相同的操作。@No'am Newman:Firebird数据库文件必须是服务器的本地文件。它在文档中,我只是现在没有一个句柄。