Delphi + PostgresDAC + Postgres + Android

  • Автор темы Plomba
  • 473
  • Обновлено
  • 05, Jan 2020
  • #1
Добрый день! Всех с наступившими и наступающими праздниками! Решил попробовать такое подключение Delphi + PostgresDAC + Postgres + Android и столкнулся с такой проблемой что, программа не запускается на Андрюше.

Почитал документацию и нашел, что нужно в Deployment подложить такой файл libpq.so. Я так понял, что это клиентская библиотека для подключения к Postgres.

Но, я не "линуксоид" и не понимаю откуда мне их взять.

В компоненте PostgresDAC есть такие файлы "libpq.so.5.10", "libcrypto.so.1.0.0", "libssl.so.1.0.0", похожи, но наверное с ними нужно что-то сделать.

Не понимаю и не умею.

Может кто-то поможет разобраться?

Plomba


Рег
16 Oct, 2007

Тем
2

Постов
5

Баллов
25
  • 05, Jan 2020
  • #2
На ум приходят два варианта: 1. переименовать libpq.so.5.10 в libpq.so 2. качнуть архив с дистрибутивом postgresql под linux и взять libpq.so из него
 

FireWind


Рег
02 Dec, 2005

Тем
112

Постов
179

Баллов
1299
  • 05, Jan 2020
  • #3
У них в хелпе Скрытая информация :: Авторизуйтесь для просмотра »
написано:

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:
Скрытая информация :: Авторизуйтесь для просмотра »

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


Рег
02 Dec, 2005

Тем
112

Постов
179

Баллов
1299
  • 05, Jan 2020
  • #4
А вообще дополнительные файлы к исполняемому файлу можно подложить не только через "Deployment Manager" из IDE, но и прямо скопировав в папку к исполняемому файлу
 

FireWind


Рег
02 Dec, 2005

Тем
112

Постов
179

Баллов
1299
  • 05, Jan 2020
  • #5
1. переименовать libpq.so.5.10 в libpq.so
не помогло. И еще прикол, написал такой код:
  ShowMessage('OK-1');

DB.Connected := True;

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

Plomba


Рег
16 Oct, 2007

Тем
2

Постов
5

Баллов
25
  • 05, Jan 2020
  • #6
Не помогает. Даже переименовывал, даже "подсовывал" 2 штуки libpq.so.5.10 и libpq.so - не работает Ошибка: System error. Code: 11. Try again
 

Plomba


Рег
16 Oct, 2007

Тем
2

Постов
5

Баллов
25
  • 06, Jan 2020
  • #7
Plomba:

Ошибка: System error. Code: 11. Try again
Судя по ошибке Postgres тут не причем. Я не силен в ведроиде, но я бы проверил разрешения - явно что то блокирует коннект.
 

FireWind


Рег
02 Dec, 2005

Тем
112

Постов
179

Баллов
1299
  • 05, Jun 2020
  • #8
Чего-то я не понял, под Postgres имеется в виду PostgresSQL, так он под Андроид не работает вроде, судя по описанию в Википедии

.

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

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

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

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

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

Mic3214


Рег
04 Jun, 2020

Тем
1

Постов
4

Баллов
14
Тем
49554
Комментарии
57426
Опыт
552966

Интересно