Delphi + PostgresDAC + Postgres + Android

Plomba

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

FireWind

Завсегдатай
Staff member
Moderator
На ум приходят два варианта:
1. переименовать libpq.so.5.10 в libpq.so
2. качнуть архив с дистрибутивом postgresql под linux и взять libpq.so из него
 

FireWind

Завсегдатай
Staff member
Moderator
У них в хелпе [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

Завсегдатай
Staff member
Moderator
А вообще дополнительные файлы к исполняемому файлу можно подложить не только через "Deployment Manager" из IDE, но и прямо скопировав в папку к исполняемому файлу
 

Plomba

Турист
1. переименовать libpq.so.5.10 в libpq.so
не помогло.

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

FireWind

Завсегдатай
Staff member
Moderator
а через Deployment Manager как в помощи подсунуть libpq.so.5.10 тоже не помогает?
 

Plomba

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

Plomba

Турист
Только что прислали живой libpq.so из рабочего Lunix-сервака. Не работает!
 

FireWind

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

Mic3214

Турист
Чего-то я не понял, под Postgres имеется в виду PostgresSQL, так он под Андроид не работает вроде, судя по описанию в Википедии.

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

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

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

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

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