delphi 在Android上使用IBLite连接到Interbase的远程示例不起作用

u3r8eeie  于 2023-06-29  发布在  Android
关注(0)|答案(1)|浏览(118)

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

Project Project6.apk raised exception class EIBNativeException with message '[FireDAC][Phys][IBLite]Unable to complete network request to host "192.168.1.58".
Failed to locate host machine.
Undefined service gds_db/tcp.'.

连接参数:

Database=192.168.1.58:C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\data\employee.gdb
User_Name=sysdba
Password=masterkey
DriverID=IB

如果我连接到本地数据库,或者在Windows上运行应用程序,一切都很正常。
我已经在XE7(https://youtu.be/XAZQfYzvxHc?t=1384)中看到了这一点,但在10.4.1中无法实现。
我做错了什么?

o7jaxewo

o7jaxewo1#

如果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

相关问题