Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
#1

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

07.06.2016, 07:02. Просмотров 238. Ответов 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 где создаются таблицы, то все нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2016, 07:02
Ответы с готовыми решениями:

FIREBIRD, две базы, две таблицы, скопировать данные из одной в другую
В наличии имеются две базы данных Firebird. Часть информации из одной нужно...

Слейте две линейные таблицы A и B в новую таблицу C, поставив элементы таблицы A на нечетные места, а элементы таблицы B – на четные
Помогите пожалуйста с решением. Слейте две линейные таблицы A и B в новую...

Объединить две таблицы по двум одинаковым полям. Не показываются данные со второй таблицы
set safety off select tbl1 Index ON pole1 TAG pole1 OF C:\tbl1.dbf.cdx...

В две таблицы на оисте добавление строки внизу таблицы
Добрый день! Надеюсь не ошибся с темой! Тема эта изъезженная до нельзя, но...

даны две таблицы, создать третею где каждый элемент равен сумме соответсвующих элементов 1-ой и 2-ой таблицы?
даны две таблицы, создать третею где каждый элемент равен сумме соответсвующих...

4
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
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); //или тут
        }
0
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
07.06.2016, 12:42  [ТС] #3
Спасибо за ответ, ибо никто так и не решился мне помочь) но к сожалению это ничего не изменило((
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
07.06.2016, 12:55 #4
ivankles, установите на эмулятор, откройте Tools - Android -DDMS, слейте базу данных на ПК и откройте её в SQLiteBrowser, посмотрите что там
0
ivankles
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 59
07.06.2016, 14:04  [ТС] #5
а вы знаете, на эмуляторе то как раз все открывается нормально. DDMS такого чет не вижу

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

Добавлено через 33 минуты
все работает и честно не знаю почему не работало
0
07.06.2016, 14:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2016, 14:04

Сравнить две таблицы и заполнить в третьей таблицы
Привет всем, скажите как из тех 2 таблицы заполнить в третью таблицу.. В первом...

Две таблицы
У меня две таблицы(ADO). В одной таблице через Grid при нажатии Delete в...

Две таблицы
Всем привет! Таблица 1 id | image | hits ----------------- 1 | 1.jpg |...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru