无法在不指定网络地址的情况下通过 Firebird 别名连接到本地数据库
Can't connect to local DB via Firebird alias without specifying network address
我不再拥有代码的旧软件 运行 在 Windows 7(我认为是 x32)和 Firebird 2.5 上运行良好,直到最近。用户将指定数据库别名“med”,软件将连接。
安装了 Windows 7 x64 和 Firebird 2.5 的新电脑。旧软件是 运行,但在尝试连接到数据库时失败并出现此错误
ISC ERROR CODE:335544344
ISC ERROR MESSAGE:
I/O error during "CreateFile (open)" operation for file ":med"
Error while trying to open file
The system cannot find the file specified.
如果我包含主机名,即“IP_ADDRESS:med”- 它可以工作,但这会导致程序中出现一些我想避免的单独问题。
如果我从 isql 尝试仅使用别名 - 它有效。
当文件是本地文件时(指定的数据库名称没有网络地址),旧代码可能试图使用本地协议。我不知道它是否与问题有关。
我尝试将 firebird.conf 从旧电脑复制到当前电脑上。
感谢您的任何想法或建议。
编辑:我按照 MarkRotteveel 的建议做了,向 aliases.conf 添加了一个“:med”别名,它现在确实连接了,因此可能解决了所有问题,但仍然留下了实际 happened/what 可能的混淆与原来的系统不同...
这并不是您问题的真正答案,但至少是解决问题的方法:在您的 Firebird 实例的 aliases.conf
中创建一个额外的别名,并以 :
作为前缀(因此, 添加 :med = <path-to-your-database>
)。这将允许 Firebird 连接。
据我所知,Firebird 和 fbclient.dll 都不会添加冒号本身,因此当您的程序检测到主机名不存在时,可能会自动添加冒号。
我不再拥有代码的旧软件 运行 在 Windows 7(我认为是 x32)和 Firebird 2.5 上运行良好,直到最近。用户将指定数据库别名“med”,软件将连接。
安装了 Windows 7 x64 和 Firebird 2.5 的新电脑。旧软件是 运行,但在尝试连接到数据库时失败并出现此错误
ISC ERROR CODE:335544344
ISC ERROR MESSAGE:
I/O error during "CreateFile (open)" operation for file ":med"
Error while trying to open file
The system cannot find the file specified.
如果我包含主机名,即“IP_ADDRESS:med”- 它可以工作,但这会导致程序中出现一些我想避免的单独问题。
如果我从 isql 尝试仅使用别名 - 它有效。
当文件是本地文件时(指定的数据库名称没有网络地址),旧代码可能试图使用本地协议。我不知道它是否与问题有关。
我尝试将 firebird.conf 从旧电脑复制到当前电脑上。
感谢您的任何想法或建议。
编辑:我按照 MarkRotteveel 的建议做了,向 aliases.conf 添加了一个“:med”别名,它现在确实连接了,因此可能解决了所有问题,但仍然留下了实际 happened/what 可能的混淆与原来的系统不同...
这并不是您问题的真正答案,但至少是解决问题的方法:在您的 Firebird 实例的 aliases.conf
中创建一个额外的别名,并以 :
作为前缀(因此, 添加 :med = <path-to-your-database>
)。这将允许 Firebird 连接。
据我所知,Firebird 和 fbclient.dll 都不会添加冒号本身,因此当您的程序检测到主机名不存在时,可能会自动添加冒号。