Delphi + PostgresDAC + Postgres + Android

Plomba

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

FireWind

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский
На ум приходят два варианта:
1. переименовать libpq.so.5.10 в libpq.so
2. качнуть архив с дистрибутивом postgresql под linux и взять libpq.so из него
 

FireWind

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский
У них в хелпе написано:
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

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский
А вообще дополнительные файлы к исполняемому файлу можно подложить не только через "Deployment Manager" из IDE, но и прямо скопировав в папку к исполняемому файлу
 

Plomba

Premium
Premium
Регистрация
16.10.2007
Сообщения
18
Реакции
18
Баллы
3
Native language | Родной язык
Русский
1. переименовать libpq.so.5.10 в libpq.so
не помогло.

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

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

FireWind

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский
а через Deployment Manager как в помощи подсунуть libpq.so.5.10 тоже не помогает?
 

FireWind

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский
Как вообще текст ошибки звучит?
 

Plomba

Premium
Premium
Регистрация
16.10.2007
Сообщения
18
Реакции
18
Баллы
3
Native language | Родной язык
Русский
Не помогает. Даже переименовывал, даже "подсовывал" 2 штуки libpq.so.5.10 и libpq.so - не работает
Ошибка: System error. Code: 11. Try again
 

Plomba

Premium
Premium
Регистрация
16.10.2007
Сообщения
18
Реакции
18
Баллы
3
Native language | Родной язык
Русский
Только что прислали живой libpq.so из рабочего Lunix-сервака. Не работает!
 

FireWind

Well-known member
Команда форума
Moderator
Premium
Регистрация
02.12.2005
Сообщения
305
Реакции
317
Баллы
63
Местоположение
Minsk
Native language | Родной язык
Русский

Mic3214

Moderator
Регистрация
04.06.2020
Сообщения
3
Реакции
2
Баллы
3
Native language | Родной язык
Русский
Чего-то я не понял, под Postgres имеется в виду PostgresSQL, так он под Андроид не работает вроде, судя по описанию в .

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

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

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

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

PostgresSQL нужно устанавливать под рут правами.
 
197 140Темы
634 110Сообщения
3 618 349Пользователи
bullj5112Новый пользователь
Верх