0

在 Delphi 10.4.1 中,我正在尝试构建一个 Android 应用程序,该应用程序连接到在我的笔记本电脑上运行的 Interbase 实例(我可以从我的桌面远程连接)。我得到了例外:

Project Project6.apk 引发异常类 EIBNativeException,消息为“[FireDAC][Phys][IBLite]无法完成对主机“192.168.1.58”的网络请求。
未能找到主机。
未定义的服务 gds_db/tcp.'。

连接参数:

数据库=192.168.1.58:C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\data\employee.gdb
用户名=sysdba
密码=主密钥
驱动程序 ID=IB

如果我连接到本地数据库或在 Windows 上运行应用程序,一切正常。

我已经在 XE7 ( https://youtu.be/XAZQfYzvxHc?t=1384 ) 中看到了这一点,但无法让它在 10.4.1 中工作。

我究竟做错了什么?

4

1 回答 1

2

如果您的 Windows 机器上的 InterBase 在默认实例“gds_db”上运行,那么它可能在端口 3050 上使用 TCP 套接字。尝试将您的 Android 应用程序的数据库 URL 更改为以下内容,以便它包含目标 3050 端口号。我假设它无法自动解析 Android 上的“gds_db”名称,因为 Android 上未定义 TCP 套接字服务名称。在 Windows、Linux、macOS 等桌面平台上,InterBase 安装程序更新系统服务文件以将“gds_db”名称转换为 3050。仅提供 TCP 套接字端口号是一种无需名称解析即可定位端点的防故障方法.

数据库=192.168.1.58/3050:C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\data\employee.gdb

于 2020-10-29T00:35:01.433 回答