Android |SQLLite: предварительно созданное обновление базы данных без использования SQLiteOpenHelper - PullRequest
4 голосов
/ 25 марта 2012

Мое приложение использует базу данных SQLite для информации. У меня есть функция, которая проверяет, если папка и база данных уже присутствуют, если они не присутствуют, она будет выходить в Интернет (в настоящее время я использую Dropbox для хранения файла БД) и скачать базу данных и сохранить ее на SD карточку, тогда я открою базу данных. База данных доступна для записи, так как позволяет пользователю оценивать объект. У меня два вопроса.

1.) Я хотел бы предоставить обновления для базы данных, а затем сделать так, чтобы мое приложение обновило базу данных, если номер версии больше, и заменил существующую. Я провел некоторое исследование, и из того, что я нашел, можно сохранить файл xml или json с номером версии и просто проанализировать информацию, а если номер версии выше, загрузить новую базу данных.

Может ли кто-нибудь привести пример того, как это достигается, и лучше ли для этой задачи использовать xml или json?

2.) Есть ли способ сохранить рейтинг в новой версии базы данных при загрузке и доступе к новой версии?

Спасибо

1 Ответ

1 голос
/ 25 марта 2012

две ночи назад я написал что-то подобное.

  • упакуйте структуру вашей базы данных в виде массива в методе веб-сервиса, прочитав имена полей и типы полей. структура массива произвольна.
  • вызовите метод веб-службы, и вы должны получить строку, представляющую объект JSONArray, если вы отправили его как json с помощью метода json_encode () в php.
  • прочитать структуру и создать строку запроса CREATE DB с помощью циклов for.
  • выполнить запрос, поэтому у вас должна быть база данных.
  • также вы можете отправлять много информации с массивами.
  • Представить каждую часть сложно, поэтому для каждой части гуглите ее.
  • не забудьте преобразовать типы полей в соответствии с типами SQLite, такими как VARCHAR => TEXT, smallint => INTEGER, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...