Delphi + PostgresDAC + Postgres + Android

Plomba

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

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
На ум приходят два варианта:
1. переименовать libpq.so.5.10 в libpq.so
2. качнуть архив с дистрибутивом postgresql под linux и взять libpq.so из него
 

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
У них в хелпе [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

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
А вообще дополнительные файлы к исполняемому файлу можно подложить не только через "Deployment Manager" из IDE, но и прямо скопировав в папку к исполняемому файлу
 

Plomba

Местный
Регистрация
16 Окт 2007
Сообщения
29
Реакции
18
Credits
315
1. переименовать libpq.so.5.10 в libpq.so
не помогло.

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

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

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
а через Deployment Manager как в помощи подсунуть libpq.so.5.10 тоже не помогает?
 

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
Как вообще текст ошибки звучит?
 

Plomba

Местный
Регистрация
16 Окт 2007
Сообщения
29
Реакции
18
Credits
315
Не помогает. Даже переименовывал, даже "подсовывал" 2 штуки libpq.so.5.10 и libpq.so - не работает
Ошибка: System error. Code: 11. Try again
 

Plomba

Местный
Регистрация
16 Окт 2007
Сообщения
29
Реакции
18
Credits
315
Только что прислали живой libpq.so из рабочего Lunix-сервака. Не работает!
 

Mic3214

Турист
Регистрация
4 Июн 2020
Сообщения
3
Реакции
2
Credits
0
Чего-то я не понял, под Postgres имеется в виду PostgresSQL, так он под Андроид не работает вроде, судя по описанию в Для просмотра ссылки Войди или Зарегистрируйся.

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

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

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

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

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