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

SQLite обновление базы данных - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Кастомная кнопка http://www.cyberforum.ru/android-dev/thread1088039.html
есть кнопка и 3 рисунка, для состояний Если составляю xml файл, то текст на кнопке не пишется. Если просто добавить 1 изображение, без xml, то на кнопке текст есть. Не могу решить данную...
Программирование Android Как получить список файлов в архиве и извлечь только нужные Подскажите плиз, как получить список файлов в архиве и извлеч только нужные мне файлы в папку. Перебрал кучу примеров из инета для работы с архивами и только ошибки. Последний тестовый пример ... http://www.cyberforum.ru/android-dev/thread1088022.html
Программирование Android Блокировка входящих/исходящих вызовов
Не знал точно в какой раздел написать данную тему,поэтому решил написать здесь. В общем есть телефон на базе android,а именно huawei u8180(мегафон),хотя мне кажется что это не столь важно.Мне нужно...
Программирование Android Структура приложения
Подскажите, поделитесь опытом. Как правильно начать писать приложение, как предварительно определить структуру будущего приложения, чтобы в ходе написания было меньше переделок? Я предполагаю так:...
Программирование Android MediaPlayer, как программно задать определенный файл на воспроизведение? http://www.cyberforum.ru/android-dev/thread1087978.html
собственно как работать с данным классом, и как программно задать определенный файл на воспроизведение? спасибо!
Программирование Android Создать значок в верхней части экрана Есть область выше запущенного окна приложения. На ней выводится значок будильника, батареи и пр. Не знаю даже как называется. Может системная панель? Заметил, что некоторые программы могут там... подробнее

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

SQLite обновление базы данных - Программирование Android

03.02.2014, 08:50. Просмотров 1729. Ответов 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


Как понятно - не хватает ему скрипта обновления.
Подскажите где это должно быть прописано.
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru