Перейти к содержанию
Fire Monkey от А до Я
  • 0

Правильное задание пути к базе данных в приложении для Андроид


sn_nn

Вопрос

Есть заготовка проекта под Андроид, которая должна открывать базу данных SQLite. Планируется разместить базу данных в той же папке, где и сама программа. Подскажите, пожалуйста, как правильно указать путь к базе данных ? Какие еще варианты размещения базы данных предпочтительны, и, как задать при этом путь в Deployment менеджере?

P.S.: использовал такую строку подключения:  

fdCon.ConnectionString := 'DriverID=SQLite;Database=$(Run)\Location.s3db;StringFormat=Unicode;LockingMode=Normal';

в Виндовс все работает, а в Андроид ошибка! (Remote path  в Андроид ставил ".\")

Ссылка на комментарий

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

  • 1

Remote path Указывайте «.\assets\internal\».

Адрес к базе можно получить через: 

FDConnection1.Params.Values['Database']:=TPath.Combine(TPath.GetDocumentsPath, '<имя файла БД>');

лежать будет в "/data/data/<application ID>/files"

Кстати, было уже здесь: http://fire-monkey.ru/topic/374-o-podkliuchenii-k-baze-sqlite-v-android-prilozhenii/

Ссылка на комментарий
  • 0

В Remote path Указал «.\assets\internal\».

 

В коде (Delphi XE6) сделал так:

var 
   DBPath: string;
begin

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
  DBPath := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, 'Location.s3db');
{$ENDIF}
fdCon.ConnectionString:= 'DriverID=SQLite;Database='+DBPath+';StringFormat=Unicode;LockingMode=Normal';
fdCon.Connected:=True;
fdCon.GetTableNames('' , '', '', ListBox1.Items, [osMy, osOther], [tkTable, tkView]);


Все получилось, спасибо!  :)

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...