Перейти к содержанию
  • Регистрация
  • 0
drbond

Подключение к БД Firebird из Android

Вопрос

Пытаюсь соединиться с удалённой БД Firebird из приложения под Android. Прошу помочь мне с одним неясным моментом. А именно: где, по какому пути в приложении должна быть размещена клиентская библиотека?  Что прописать в deployment? Что прописать в свойстве ClientLibrary компонента UniConnection? Почему UniConnection не видит библиотеку libfbclient.so.3.0.3 когда я размещаю её в папке приложения?

Пытаюсь указывать путь к файлу для приложения:

procedure TForm2.FormCreate(Sender: TObject);
var
begin
UniConnection1.SpecificOptions.Values['ClientLibrary']:= TPath.Combine(TPath.GetDocumentsPath, 'libfbclient.so.3.0.3');
end;

В итоге получаю:

Screenshot_20180820-132427.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 1

Библиотеку нужно не забыть добавить в Deployment (release и debug).

У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя.

В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей,  жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена.

В проекте, в процедуре подключения к базе есть строка:

ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2';

ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0.

Не забудь добавить в USES модуль System.IOUtils.

 

Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится.

По крайне мере у меня не получилось.

Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес.

 

Собираем строку подключения:

 

    UniConnectionFB.ConnectString := 'Provider Name=InterBase;' +
                                     'Data Source=' +     server +';' +
                                     'Database=' +        Database + ';' +
                                     'Port=' +            port +';' +
                                     'User ID=' +         Username +';' +
                                     'Password=' +        Password + ';'+
                                     'Client Library=' +  ClientLibrary + ';' +
                                     'Character Set='+    CharacterSet + ';' +
                                     'Use Unicode=True;Login Prompt=False';

 

Screenshot_40.png

Изменено пользователем x11

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Получается, что ".\assets\internal" соответствует "TPath.GetDocumentsPath"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 20.08.2018 в 21:06, drbond сказал:

А вот когда я поставил "галочки" слева, то всё заработало! Спасибо!

странно, у меня наоборот

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...