我不再有代码的旧软件直到最近还在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的建议做了,添加了一个":med";alias到aliases.conf,它现在确实连接了,所以这可能解决了所有问题,但仍然留下了实际发生的事情/与原始系统可能不同的地方的困惑。。。
这不是真正的问题答案,但至少是解决问题的方法:在Firebird实例的aliases.conf
中创建一个以:
为前缀的额外别名(因此,添加:med = <path-to-your-database>
(。这将允许Firebird连接。
据我所知,Firebird和fbclient.dll都不会添加冒号本身,所以当你的程序检测到缺少主机名时,它很可能会自动添加冒号。