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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
#1

Две таблицы в БД - Android

07.06.2016, 07:02. Просмотров 183. Ответов 4
Метки нет (Все метки)

Здравствуйте! проблема в том, что когда хочу курсором пройтись по таблицам базы(а их две, при нажатии на определенные кнопки должны открываться разные таблицы), одна открывается без проблем, в то время как другая крашит прогу, а в консоли ошибка, гласящая, что такой таблицы нет. Создал таблицы по отдельности, тобишь по одной. Обе работают, но если создавать сразу обе, то одна из них обязательно не работает. Мб какой то конфликт возникает при их создании?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
public class DBHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "player.db";
    private static final int DATABASE_VERSION = 1;
 
    public static final String TABLE_STREAMS_NAME = "stream";
    public static final String TABLE_HTTP_NAME = "http";
 
    public static final String NAME_COLUMN = "name";
    public static final String URL_COLUMN = "url";
    public static final String SCRIPT_STREAM = "create table " + TABLE_STREAMS_NAME +
            " (_id integer primary key autoincrement, "
            + NAME_COLUMN + ", "
            + URL_COLUMN + ");";
    public static final String SCRIPT_HTTP = "create table " + TABLE_HTTP_NAME +
            " (_id integer primary key autoincrement, "
            + NAME_COLUMN + ", "
            + URL_COLUMN + ");";
 
    DBHelper(Context context)
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                          int version) {
        super(context, name, factory, version);
    }
 
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                          int version, DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
    }
 
 
 
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SCRIPT_HTTP);
        db.execSQL(SCRIPT_STREAM);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
}
Java
1
2
3
4
5
6
7
8
if(type.equals("http"))
        {
            c = db.query(type, null, null, null, null, null, null); //ошибка тут
        }
        else if(type.equals("stream"))
        {
            c = db.query(type, null, null, null, null, null, null); //или тут
        }
Добавлено через 10 часов 56 минут
При том если создавать курсоры в методе onCreate где создаются таблицы, то все нормально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2016, 07:02     Две таблицы в БД
Посмотрите здесь:

Android Как минусоват данные с таблицы 2 от таблицы 1
Изменить две строчки кода (jsoup) Android
Android Как уместить две кастомные вьюхи на экране
Как отметить две даты на диалоговом Календаре Android
Две точки GPS на карте Android
Могу ли я поделить одну активность на две независимых части? Android
Как сравнить две разных БД Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 50
07.06.2016, 12:38     Две таблицы в БД #2
На первый взгляд вроде все нормально, может константы попробовать вставить
Java
1
2
3
4
5
6
7
8
if(type.equals(DBHelper.TABLE_HTTP_NAME))
        {
            c = db.query(DBHelper.TABLE_HTTP_NAME, null, null, null, null, null, null); //ошибка тут
        }
        else if(type.equals(DBHelper.TABLE_STREAMS_NAME))
        {
            c = db.query(DBHelper.TABLE_STREAMS_NAME, null, null, null, null, null, null); //или тут
        }
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
07.06.2016, 12:42  [ТС]     Две таблицы в БД #3
Спасибо за ответ, ибо никто так и не решился мне помочь) но к сожалению это ничего не изменило((
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
07.06.2016, 12:55     Две таблицы в БД #4
ivankles, установите на эмулятор, откройте Tools - Android -DDMS, слейте базу данных на ПК и откройте её в SQLiteBrowser, посмотрите что там
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
07.06.2016, 14:04  [ТС]     Две таблицы в БД #5
а вы знаете, на эмуляторе то как раз все открывается нормально. DDMS такого чет не вижу

Добавлено через 16 минут
попробовал на другом телефоне, все работает. Значит проблема в телефоне первом. Как ее теперь править?)

Добавлено через 33 минуты
все работает и честно не знаю почему не работало
Yandex
Объявления
07.06.2016, 14:04     Две таблицы в БД
Ответ Создать тему
Опции темы

Текущее время: 22:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru