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

Cursor c = db.rawQuery - выдает ошибку - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
di109
2 / 2 / 0
Регистрация: 01.04.2012
Сообщений: 110
16.03.2013, 13:37     Cursor c = db.rawQuery - выдает ошибку #1
Есть таблица с датами, и есть SQL условие для получения даты. Если я в условие указываю дату которая есть в таблице код отрабатывает без ошибок и я получаю дату. Но если указываю дату которой нет в таблице приложение аварийно завершается! Почему так происходит где ошибка. Вообще я ожидал nuul или пусто. Если данный SQL запрос выполнить в Менеджере SQLite: получаю пусто если даты нет или дату если такая есть.

Может ошибка в этом: c.moveToFirst();

Код:
Java
1
2
3
4
5
6
7
8
        String table = "datadenominator2";
        String data = "16.03.2012";
 
        Cursor c = db.rawQuery("SELECT Date FROM "+table+"  WHERE Date = '"+data+"'", null);
        
        c.moveToFirst();
        
        String strData= c.getString(c.getColumnIndex("Date"));
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2013, 13:37     Cursor c = db.rawQuery - выдает ошибку
Посмотрите здесь:

Eclipse выдает ошибку Android
Android Эмулятор выдает ошибку
Почему выдает ошибку? Android
Android Эффект наложения картинок. Выдает ошибку, что не правильно?
Не работает rawquery Android
Android RawQuery using cursor
При создании virtual device выдает ошибку Android
Android Не работает запрос через rawQuery
Android GoogleMap, getMap() выдает ошибку
Android Приложение выдает ошибку, если на устройстве отключен GPS
Кнопка при нажатии выдает ошибку. Как исправить? Android
Dx.bat выдает ошибку Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.03.2013, 15:03     Cursor c = db.rawQuery - выдает ошибку #2
Если у вас запрос ничего не вернет, то будет ошибка в c.moveToFirst();
Используйте try catch или проверяйте количество возвращенных записей запросом.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
16.03.2013, 18:38     Cursor c = db.rawQuery - выдает ошибку #3
Если у вас запрос ничего не вернет, то будет ошибка в c.moveToFirst();
c.moveToFirst() просто вернет false (в данном случае)!
getColumnIndex() вызывает CursorIndexOutOfBoundsException смотри в логах.

Можно сделать например так:

Java
1
2
3
4
5
6
7
...
if (cursor.moveToFirst()) {
       String strData= c.getString(c.getColumnIndex("Date");
} else {
      cursor.close();
}
...
Yandex
Объявления
16.03.2013, 18:38     Cursor c = db.rawQuery - выдает ошибку
Ответ Создать тему
Опции темы

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