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

Deployment Manager - не включает фалы БД в сборку

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

Я конечно понимаю, что эта тема описана много раз, вот даже ссылка на тему на этом сайте.

 

http://fire-monkey.ru/topic/31-vkliuchenie-svoikh-failov-v-prilozhenie/?hl=%2Bdeployment+%2Bmanager#entry85

 

Но все равно у меня файл базы SQLLite при разворачивании в отладке из Delphi XE8 не обновляется. Все равно используется старый файл БД.

Подскажите как это победить. 

Спасает только если приложение удаляешь из телефона и потом заново устанавливаешь. Но как же тогда быть при публикации в Google Market?

 

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

 post-1420-0-30233100-1449772544_thumb.pn

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


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

Отвечу сам.

 

Нормального способа так и не нашел. Понятно, что БД не заменяется, что бы не затереть пользовательские данные, которые могли быть внесены в БД.

Поэтому пришлось применить способ принудительного закрытия БД, последующего удаления и вытягивания новой базы из файла поставки.

 

Собственно вот тема где это описывалось.

 

http://delphifmandroid.blogspot.it/2014/02/blog-post_16.html?showComment=1401443522770

 

Только не применял Form.Create. так как вываливалось почему то в ошибку.

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


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

А на мой взгляд это очень удобно что не затирается база... а удалить приложение не так уж и сложно :)

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

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


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

на эту тему была спец. статья даже, не помню где, что приложение должно само заботиться о переносе данных из старой базы в новую чтобы не трогать польз. данные

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


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

Не, я понимаю, что спасение утопающих дело самих утопающих, но зачем тогда в Deployment Manager давать возможность указания способа Owerwrite (Never, Always)?

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


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

Есть другой подход к проблеме.

Добавить к базе таблицу версия и в ней будет храниться одно значение - версия базы.

Изначально версия программы и базы 1

Если разработана версия программы 2 и база для нее изменилась, то при запуске проверяем versionCode программы и версию базы.

Если отличаются, то через fdConnection изменяем базу с помощью скрипта, и изменяем значение в таблице версия базы.

Пользовательские данные сохраняются.

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


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

 

 

 

Только не применял Form.Create. так как вываливалось почему то в ошибку.

Основная ошибка в том, что компоненту БД еще не инициализировались (не создались), а ты уже обращается к ним и пытаешься что то сделать с БД)). Часто, когда ты пытаешься открыть БД на основной форме from.create, а компоненты на другой форме.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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


  • Похожий контент

    • От Anasazi
      Добрый день! Подскажите пожалуйста как открыть придеплойенную html'ку в TWebBrowser под ios?
       
      Под андройд работает так:
      WebBrowser1.Navigate('file:слэш слэш'+ TPath.GetDocumentsPath + PathDelim + 'test.html'); под ios пробовал так (не работает):
      WebBrowser1.Navigate('file:слэш слэш'+ TPath.Combine(TPath.GetDocumentsPath, 'test.html'));
    • От neohost
      Здравствуйте. В смежной теме нашёл код подключения Res файла с ресурсами
      var Stream: TResourceStream; begin Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA); try //Работаем с потоком finally Stream.Free; end; Напрашивается два вопроса
      Что произойдёт при установке программы на андроид устройство? Ресурс останется внутри приложения, или распакуется? Как проиграть mp3/wav файл, упакованный в приложение таким образом без распаковки во внутреннюю память устройства? Интересуюсь с целью понять, можно ли хранить ресурсы внутри программ не распаковывая, как это можно делать в windows программах.
    • От la_coste
      Доброго времени суток, уважаемые форумчане! 
      У меня такой вопросик: можно ли в установочный пакет для android собираемый в delphi xe5 включать свои файлы???
      Заранее спасибо))
  • Последние посетители   0 пользователей онлайн

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

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