0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
||||||
1 | ||||||
Как обновить БД пользователей приложения07.12.2016, 14:52. Показов 727. Ответов 16
Метки нет (Все метки)
Добрый день. Есть приложение в маркете использующее готовую БД SQlite. Данные в БД юзер может менять по желанию или добавлять новые записи. Я как разработчик обновил БД и добавил в нее новые записи (скажем 10 записей, а может и 1000). Требуется новые записи добавить в БД пользователей, так чтобы их данные не стерлись и не изменились. Как можно это реализовать подскажите пожалуйста в виде кода если можно. Потому что уже 3-4 дня копаюсь не пойму как сделать.
БД содержит одну таблицу slovar с полями _id, word, translation, type, favorites. Знаю есть метод onUpgrade, где это все можно сделать, но как сделать не пойму. Единственное что я сделал это в методе onUpgrade() в БД добавил новую таблицу, и в курсор вытащил все записи из бд следующим образом, а дальше не знаю как быть
Можете привести небольшой кусок кода для моего случая?
0
|
07.12.2016, 14:52 | |
Ответы с готовыми решениями:
16
Как получить пользователей приложения? Как выгрузить список пользователей из приложения? Как сделать параметры приложения доступными для всех пользователей сервера Как объединить воедино два приложения, написанных для разных групп пользователей |
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
07.12.2016, 15:02 | 2 |
БД находится в приложении или на сервере?
Добавлено через 3 минуты Используйте запрос insert into... и все дела.
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
07.12.2016, 15:13 [ТС] | 3 |
В приложении в assets. А как можно обращаться к старой версии БД и к новой версии БД? Вы не могли бы привести небольшой кусок кода демонстрирующий это?
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
||||||
07.12.2016, 15:51 | 4 | |||||
Зачем вам одновременно 2 версии БД?
Для добавления записей при установке пользователем новой версии приложения нужно: 1. Увеличить номер версии БД 2. В onUpgrade если версия < 2 кодим
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
07.12.2016, 15:55 [ТС] | 5 |
Это да, а если новых записей будет скажем 1000 штук? Писать каждый раз insert into для каждого слова не то же ведь. Поэтому хочу чтобы действовало и для случая когда много записей добавляю
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
07.12.2016, 16:06 | 7 |
Цикл слышали такое слово? Берете в переменную слово и формируете query. А откуда брать слово это уже дело техники.
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
07.12.2016, 16:13 [ТС] | 8 |
знаю я про циклы. Можно в файл записать слова к примеру так: слово$перевод$значение_type$значение_favorites, брать из этого файла инфо и вставлять в БД. Думал может есть еще какой-то более лучший способ.
Добавлено через 1 минуту Просто хотел в БД добавлять записи и чтобы на ее основе обновлялась БД пользователей не теряя и не меняя данные которые есть у юзеров, а добавлять новые данные. Чтобы не париться и в дальнейшем повышать только версию БД.
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
07.12.2016, 16:21 [ТС] | 10 |
Я тоже не силен. Я запускал первый раз программу с БД все работает, затем добавил новые записи в БД запустил этих данных нет в БД, поднял версию БД тоже нет. А чтобы они появились и в БД пользователей нужно ведь в методе onUpgrade написать что они добавляются в БД у тех юзеров у которых версия БД ниже чем текущая. А вот это и хотел реализовать на основе старой версии БД и новой версии БД.
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
07.12.2016, 20:26 | 11 |
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
07.12.2016, 21:25 | 13 |
Вот он и есть пример у ТС, когда нужно добавить новые записи, но не потерять записи сделанные пользователем.
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
09.12.2016, 09:00 [ТС] | 14 |
Мне как-то предлагали такой вариант. Если требуется оставить записи у юзеров без изменений, но добавить еще и новые то сделать так: Новую БД из assets скопировать к юзеру под новым названием, оттуда вытащить все нужные записи и записать в БД юзера, и удалить временную БД. Но не получилось у меня это реализовать.
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
09.12.2016, 10:48 | 15 |
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
09.12.2016, 18:44 | 16 |
Вот такая логика, не знаю удастся ли вам ее реализовать.
1. начинаем транзакцию 2. создаю копию таблицы с обновленными значениями по структуре так и по записям. 3. копируем предыдущие значения через запрос insert и select одновременно со старой таблицы в новую (http://www.w3schools.com/sql/s... select.asp) 4. удаляем старую таблицу чтобы освободить имя 5. переименовываем новую таблицу в старое имя таблицы 6. конец транзакции
0
|
0 / 0 / 1
Регистрация: 07.02.2013
Сообщений: 56
|
|
10.12.2016, 15:45 [ТС] | 17 |
Спасибо.
0
|
10.12.2016, 15:45 | |
10.12.2016, 15:45 | |
Помогаю со студенческими работами здесь
17
Вручную обновить приложения samsung j3 Ошибка приложения у одного из пользователей Права доступа пользователей приложения Статистика пользователей - как идентифицировать пользователей с одинаковыми именами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |