Подключение к удаленному экземпляру Interbase на Android с помощью IBLite не работает

В 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.

Что я делаю неправильно?


person Alister    schedule 28.10.2020    source источник
comment
Я предполагаю, что это потому, что Android не понимает C: \. Вместо этого вы можете заставить его работать с именем файла UNC.   -  person Ken White    schedule 29.10.2020


Ответы (1)


Если InterBase на вашем компьютере с Windows работает с экземпляром по умолчанию gds_db, то он, вероятно, использует сокет TCP на порту 3050. Попробуйте изменить URL-адрес базы данных вашего приложения Android на следующий, чтобы он включал номер целевого порта 3050. Я предполагаю, что он не может автоматически разрешить имя gds_db на Android, поскольку имя службы сокета TCP не определено на Android. На настольных платформах, таких как 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

person Sriram Balasubramanian    schedule 29.10.2020
comment
Не думал, что это сработает, но действительно работает. - person Alister; 29.10.2020