【发布时间】:2016-09-06 17:52:58
【问题描述】:
我想在我的开发环境中使用 IB XE7 的桌面版本,但无法使连接正常工作。
最初的应用程序使用了完整的 IB 服务器版本,我现在想在成本更低的单 PC 类型应用程序上运行该应用程序,并选择了 IB 桌面版本。
Rad Studio 10.1 Berlin 在 W7 64 位虚拟机上运行。 FireDac 是数据库连接组件。 IB XE7 Desktop 是开发 PC 上的数据库服务器。
应用程序的目标是具有 W7 32 位的 VM,该 VM 上有另一个 IB XE7 桌面。
我可以构建 32 位应用程序,在将 FireDac 连接组件协议字段更改为“本地”而不是 TCP/IP 后,它将连接到目标 PC 上的 IB XE7 桌面(在 VM 中运行 W7 32 位),有些东西我在堆栈溢出中阅读。
我无法工作的是开发环境中的数据库连接。
我先安装了64位版本的IB,然后卸载了,试了32位版本,结果还是一样。
在线阅读了一些连接问题后,我尝试在服务器名称字段中输入“gds_db”和“localhost/gds_db”,但它仍然不起作用,尽管它确实改变了错误。
错误 - 服务器名称中没有任何内容
[FireDAC][Phys][IB]数据库不可用。
将“gds_db”放入服务器名称后出错
[FireDAC][Phys][IB]无法完成对主机“gds_db”的网络请求。
找不到主机。
在主机文件或域名服务中找不到指定的名称..
首先尝试安装64位IB,然后删除所有找到的gsd文件,然后删除注册表项,并安装32位版本。问题仍然存在。
注意:Database Workbench 5 可以正常连接到同一 VM 上的数据库。
欢迎任何想法。
谢谢。
詹姆斯·F.
【问题讨论】:
-
两件事:a)您需要检查服务器的实际实例名称。 iirc,IB的“锯掉”版本使用gds_db以外的东西。 b) 查看\windows\system32\drivers\etc 中的
services文件。它应该包含一个类似“gds_db 3050/tcp # InterBase Server”的条目来命名服务器实例。 -
顺便说一句,您可以尝试查看是否可以使用 IBX 组件获得连接。我可以通过将 IBConnection 的数据库名称设置为“LocalHost:D:\Delphi\Interbase\Databases\MA.GDB”来连接到本地 IB XE7 服务器
-
.GDB 是一个以 winXP 开头的错误文件扩展名
-
@Arioch'The:也许,但在 Win10 中对我来说很好。
-
等待第一次操作系统崩溃 - 然后它将用存档的文件覆盖您的数据库文件。
标签: delphi database-connection interbase delphi-10.1-berlin