Форум программистов, компьютерный форум CyberForum.ru

SQLite обновление базы данных - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как получить список файлов в архиве и извлечь только нужные http://www.cyberforum.ru/android-dev/thread1088022.html
Подскажите плиз, как получить список файлов в архиве и извлеч только нужные мне файлы в папку. Перебрал кучу примеров из инета для работы с архивами и только ошибки. Последний тестовый пример public void unzipping () { try { /* * To Open a zip file, use * * ZipFile(String fileName) * constructor of the...
Android Блокировка входящих/исходящих вызовов Не знал точно в какой раздел написать данную тему,поэтому решил написать здесь. В общем есть телефон на базе android,а именно huawei u8180(мегафон),хотя мне кажется что это не столь важно.Мне нужно заблокировать на данном телефоне входящие и исходящие вызовы на любой вставленной в него симкарте.Но обязательно сделать так,чтобы интернет работает. То есть взял я любую симку,вставил ее в... http://www.cyberforum.ru/android-dev/thread1088010.html
Android Структура приложения
Подскажите, поделитесь опытом. Как правильно начать писать приложение, как предварительно определить структуру будущего приложения, чтобы в ходе написания было меньше переделок? Я предполагаю так: Дробим приложение на основные классы - класс работы с пользователем кнопки, дисплей - класс работы с периферией (в моем случае блютуз) - класс работы с данными; Устанавливаем взаимосвязи и...
Android MediaPlayer, как программно задать определенный файл на воспроизведение?
собственно как работать с данным классом, и как программно задать определенный файл на воспроизведение? спасибо!
Android Создать значок в верхней части экрана http://www.cyberforum.ru/android-dev/thread1087944.html
Есть область выше запущенного окна приложения. На ней выводится значок будильника, батареи и пр. Не знаю даже как называется. Может системная панель? Заметил, что некоторые программы могут там размещать свой значок. Пришла и мне мысль это использовать. Но не найду инфу. Скажите, как это сделать или хотя бы как это называется?
Android Работа с FrameLayout Почему первая картинка не перекрывает вторую? package com.shcherban.box_box; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.util.Log; подробнее

Показать сообщение отдельно
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297

SQLite обновление базы данных - Android

03.02.2014, 08:50. Просмотров 1601. Ответов 2
Метки (Все метки)

Всем привет.

Использую базу данных в приложении. При обновлении программы нужно обновить базу данных в том числе, база данных хранится в архиве в папке assets/database
У меня есть класс DataBase:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class DataBase extends SQLiteAssetHelper {
 
    private static final String DATABASE_NAME = "ups.db";
    private static final int DATABASE_VERSION = 2;
 
    public DataBase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
 
        // you can use an alternate constructor to specify a database location 
        // (such as a folder on the sd card)
        // you must ensure that this folder is available and you have permission
        // to write to it
        //super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);
 
    }
 
    public Cursor getEmployees() {
 
        SQLiteDatabase db = getReadableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
 
        String [] sqlSelect = {"0 _id", "art"}; 
        String sqlTables = "ups";
 
        qb.setTables(sqlTables);
        Cursor c = qb.query(db, sqlSelect, null, null,
                null, null, null);
 
        c.moveToFirst();
        return c;
 
    }
 
}
Если оставлю строчку
Java
1
private static final int DATABASE_VERSION = 1;
База данных не обновляется, если поставлю
Java
1
private static final int DATABASE_VERSION = 2;
то выдает ошибку:
Кликните здесь для просмотра всего текста
02-03 10:44:48.456: I/SQLiteAssetHelper(32627): successfully opened database ups.db
02-03 10:44:48.456: W/SQLiteAssetHelper(32627): Upgrading database ups.db from version 1 to 2...
02-03 10:44:48.456: W/SQLiteAssetHelper(32627): missing database upgrade script: databases/ups.db_upgrade_1-2.sql
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): no upgrade script path from 1 to 2
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): Couldn't open ups.db for writing (will try read-only):
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: no upgrade script path from 1 to 2
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.onUpgrade(SQLiteAssetHelper.java:314)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getWritableDatabase(SQLiteAssetHelper.java:197)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getReadableDatabase(SQLiteAssetHelper.java:254)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at ru.nag.nagupscalc.DataBase.getEmployees(DataBase.java:28)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at ru.nag.nagupscalc.Calc.onCreate(Calc.java:45)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.Activity.performCreate(Activity.java:5104)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.ActivityThread.access$600(ActivityThread.java:153)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.os.Handler.dispatchMessage(Handler.java:99)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.os.Looper.loop(Looper.java:137)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at android.app.ActivityThread.main(ActivityThread.java:5226)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at java.lang.reflect.Method.invokeNative(Native Method)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at java.lang.reflect.Method.invoke(Method.java:511)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
02-03 10:44:48.456: E/SQLiteAssetHelper(32627): at dalvik.system.NativeStart.main(Native Method)
02-03 10:44:48.466: D/AndroidRuntime(32627): Shutting down VM
02-03 10:44:48.466: W/dalvikvm(32627): threadid=1: thread exiting with uncaught exception (group=0x41989930)
02-03 10:44:48.466: E/AndroidRuntime(32627): FATAL EXCEPTION: main
02-03 10:44:48.466: E/AndroidRuntime(32627): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.nag.nagupscalc/ru.nag.nagupscalc.Calc}: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 1 to 2: /data/data/ru.nag.nagupscalc/databases/ups.db
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread.access$600(ActivityThread.java:153)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.os.Handler.dispatchMessage(Handler.java:99)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.os.Looper.loop(Looper.java:137)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread.main(ActivityThread.java:5226)
02-03 10:44:48.466: E/AndroidRuntime(32627): at java.lang.reflect.Method.invokeNative(Native Method)
02-03 10:44:48.466: E/AndroidRuntime(32627): at java.lang.reflect.Method.invoke(Method.java:511)
02-03 10:44:48.466: E/AndroidRuntime(32627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
02-03 10:44:48.466: E/AndroidRuntime(32627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
02-03 10:44:48.466: E/AndroidRuntime(32627): at dalvik.system.NativeStart.main(Native Method)
02-03 10:44:48.466: E/AndroidRuntime(32627): Caused by: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 1 to 2: /data/data/ru.nag.nagupscalc/databases/ups.db
02-03 10:44:48.466: E/AndroidRuntime(32627): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getReadableDatabase(SQLiteAssetHelper.java:266)
02-03 10:44:48.466: E/AndroidRuntime(32627): at ru.nag.nagupscalc.DataBase.getEmployees(DataBase.java:28)
02-03 10:44:48.466: E/AndroidRuntime(32627): at ru.nag.nagupscalc.Calc.onCreate(Calc.java:45)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.Activity.performCreate(Activity.java:5104)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
02-03 10:44:48.466: E/AndroidRuntime(32627): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261)
02-03 10:44:48.466: E/AndroidRuntime(32627): ... 11 more


Как понятно - не хватает ему скрипта обновления.
Подскажите где это должно быть прописано.
Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru