Delphi + PostgresDAC + Postgres + Android

Plomba

Premium
Joined
Oct 16, 2007
Messages
18
Reaction score
18
Добрый день! Всех с наступившими и наступающими праздниками!
Решил попробовать такое подключение Delphi + PostgresDAC + Postgres + Android и столкнулся с такой проблемой что, программа не запускается на Андрюше. Почитал документацию и нашел, что нужно в Deployment подложить такой файл libpq.so. Я так понял, что это клиентская библиотека для подключения к Postgres. Но, я не "линуксоид" и не понимаю откуда мне их взять. В компоненте PostgresDAC есть такие файлы "libpq.so.5.10", "libcrypto.so.1.0.0", "libssl.so.1.0.0", похожи, но наверное с ними нужно что-то сделать. Не понимаю и не умею. Может кто-то поможет разобраться?
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
На ум приходят два варианта:
1. переименовать libpq.so.5.10 в libpq.so
2. качнуть архив с дистрибутивом postgresql под linux и взять libpq.so из него
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
У них в хелпе [SHOWTOGROUPS=4,19,20][/SHOWTOGROUPS] написано:
Android deploy library is available for version with sources only. Trial version cannot be used for Android development.
Client library is situated in the %PostgresDAC%\DeployAndroid folder, %PostgresDAC% is the installation directory. It includes the following file:
  • libpq.so - core PostgreSQL client driver
For using DAC for PostgreSQL with Android target platform you have to follow those steps:
1. Open your project.
2. Open the Deployment Manager (Project -> Deployment).
3. Add libpq.so to the deployment list. You can find this library in this folder.
4. Change remote path for libpq.so to '.\assets\internal\'

Можно попробовать добавить в деплой libpq.so.5.10
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
А вообще дополнительные файлы к исполняемому файлу можно подложить не только через "Deployment Manager" из IDE, но и прямо скопировав в папку к исполняемому файлу
 

Plomba

Premium
Joined
Oct 16, 2007
Messages
18
Reaction score
18
1. переименовать libpq.so.5.10 в libpq.so
не помогло.

И еще прикол, написал такой код:
Code:
  ShowMessage('OK-1');
  DB.Connected := True;
  ShowMessage('OK-2');

Он как-то отрабатывает в обратном порядке:
В начале "OK-2", потом ошибка (соединения к БД), потом "OK-1"
Такого еще не видел :)
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
а через Deployment Manager как в помощи подсунуть libpq.so.5.10 тоже не помогает?
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
Как вообще текст ошибки звучит?
 

Plomba

Premium
Joined
Oct 16, 2007
Messages
18
Reaction score
18
Не помогает. Даже переименовывал, даже "подсовывал" 2 штуки libpq.so.5.10 и libpq.so - не работает
Ошибка: System error. Code: 11. Try again
 

Plomba

Premium
Joined
Oct 16, 2007
Messages
18
Reaction score
18
Только что прислали живой libpq.so из рабочего Lunix-сервака. Не работает!
 

FireWind

GOLD
Joined
Dec 26, 2018
Messages
306
Reaction score
322
Ошибка: System error. Code: 11. Try again
Судя по ошибке Postgres тут не причем. Я не силен в ведроиде, но я бы проверил разрешения - явно что то блокирует коннект.
 

Mic3214

New member
Joined
Jun 4, 2020
Messages
3
Reaction score
2
Чего-то я не понял, под Postgres имеется в виду PostgresSQL, так он под Андроид не работает вроде, судя по описанию в Википедии.

Даже если работает, в любом случае, Андроид версия нативной библиотеки должна быть собрана под ARM, если это Андроил на ARM или под x86, для Андроила на x86. PostgresSQL ведь написан на Си, а не на Java.

Или я чего-то не понимаю в заданном вопросе.

Да и зачем PostgreSQL на Android или у вас Android устройство работать как нагруженный сервер. Есть же SQLite.

Хотя нет, я ошибся есть PostgresSQL под Android, но библиотекой в любом случаи не обойтись.

PostgresSQL нужно устанавливать под рут правами.
 
Top