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

Вставить null в SQLite - Android

Восстановить пароль Регистрация
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 00:19     Вставить null в SQLite #1
Есть такой код
Java
1
2
3
4
5
6
7
@Override
        public void onCreate(SQLiteDatabase db) {
               db.execSQL("CREATE TABLE "+ DATABASE_TABLE+ " ("+
                        KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                        KEY_REZIM + " TEXT NOT NULL, " +
                        KEY_POINT_ID + " TEXT);"
                   );
У меня KEY_REZIM бывает null, как его вставить в таблицу? Читал, что SQLite не поддерживает вставку пустой строки.
Если перед этим делаю проверку на
Java
1
2
3
4
if ((KEY_REZIM==null)||(KEY_REZIM.equals("")))
                            {
                                KEY_REZIM="Нет данных"; 
                            }
С таким кодом и без него вылетает, в логах пишет, что KEY_REZIM равно null. Как быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2013, 00:19     Вставить null в SQLite
Посмотрите здесь:

Android lockCanvas() возврашяет null
Проверка на null Android
ListView и SQLite Android
Android FindViewByID возвращает Null
ListView + SQLite Android
Кириллица в SQLite Android
Android Глюк SQLite?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.08.2013, 00:21     Вставить null в SQLite #2
Цитата Сообщение от Digetix Посмотреть сообщение
Java
1
2
3
if ((KEY_REZIM==null)||(KEY_REZIM.equals(""))) {
KEY_REZIM="Нет данных"; 
}
а зачем ключ менять?
KEY_REZIM это название колонки как я понял и оно должно быть константой, и не может быть null или пустой строчкой.
значение не может быть null наверное потому что вы написали "TEXT NOT NULL"
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 00:30  [ТС]     Вставить null в SQLite #3
Цитата Сообщение от V0v1k Посмотреть сообщение
KEY_REZIM это название колонки как я понял и оно должно быть константой, и не может быть null или пустой строчкой.
Это да, извините, не то вписал.
Java
1
2
3
4
5
ContentValues cv = new ContentValues();
if ((rezim==null)||(rezim.equals(""))) {
    rezim="Нет данных!"; 
}
cv.put(KEY_REZIM, rezim);
В таком случае всё равно вылетает с ошибкой, что rezim равен null.
Цитата Сообщение от V0v1k Посмотреть сообщение
значение не может быть null наверное потому что вы написали "TEXT NOT NULL"
Я пробовал и просто " TEXT ", всё равно если null, то вылетает.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.08.2013, 00:32     Вставить null в SQLite #4
покажите логи
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
15.08.2013, 00:39     Вставить null в SQLite #5
http://stackoverflow.com/questions/9...n-sqlite-table
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 00:50  [ТС]     Вставить null в SQLite #6
Вот лог по приложению
E/AndroidRuntime(8856): java.lang.NullPointerException
E/AndroidRuntime(8856): at com.example.test.MainActivity$6.done(MainActivity.java:533)
E/AndroidRuntime(8856): at com.parse.FindCallback.internalDone(FindCallback.java:48)
E/AndroidRuntime(8856): at com.parse.FindCallback.internalDone(FindCallback.java:33)
E/AndroidRuntime(8856): at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:50)
E/AndroidRuntime(8856): at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:16)
E/AndroidRuntime(8856): at android.os.AsyncTask.finish(AsyncTask.java:417)
E/AndroidRuntime(8856): at android.os.AsyncTask.access$300(AsyncTask.java:127)
E/AndroidRuntime(8856): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
E/AndroidRuntime(8856): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(8856): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(8856): at android.app.ActivityThread.main(ActivityThread.java:3687)
E/AndroidRuntime(8856): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(8856): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(8856): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
E/AndroidRuntime(8856): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
E/AndroidRuntime(8856): at dalvik.system.NativeStart.main(Native Method)
E/ (27358): Dumpstate > /data/log/dumpstate_app_error
Добавлено через 2 минуты
Смотрел эту ссылку. Там вроде не совсем то, что мне нужно. У меня есть столбец и в него нужно вставлять то текст, то null
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.08.2013, 01:37     Вставить null в SQLite #7
Цитата Сообщение от Digetix Посмотреть сообщение
MainActivity.java:533
и что в этой строке?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 11:36  [ТС]     Вставить null в SQLite #8
Цитата Сообщение от V0v1k Посмотреть сообщение
и что в этой строке?
Java
1
String rezim = myObject.get(i).getString("rezim").toString();
Сейчас нет возможности проверить, но подозреваю, что оттуда приходит null, а я пытаюсь его сделать строкой
verylazy
Заблокирован
15.08.2013, 14:09     Вставить null в SQLite #9
оно ругает на нулл поинтер, который вылетает в методе onPostExecute - его и надо смотреть
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 14:57  [ТС]     Вставить null в SQLite #10
Цитата Сообщение от verylazy Посмотреть сообщение
который вылетает в методе onPostExecute - его и надо смотреть
У меня подключена библиотека сайта parse.com.
Вот метод взятия из него данных
Java
1
2
3
4
5
6
7
8
query = new ParseQuery("Object");
query.findInBackground(new FindCallback() {
            public void done(List<ParseObject> myObject, ParseException e) {
                if (e == null) { 
                    String rezim = myObject.get(i).getString("rezim").toString();        // это 533 строка
                    }
               }
        });
verylazy
Заблокирован
15.08.2013, 15:07     Вставить null в SQLite #11
а если сразу после
Java
1
public void done(List<ParseObject> myObject, ParseException e) {
сделать
Java
1
System.out.println(myObject);
?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 15:27  [ТС]     Вставить null в SQLite #12
Сейчас нет возможности проверить, но что это даст?
verylazy
Заблокирован
15.08.2013, 15:49     Вставить null в SQLite #13
просто проверить - myObject == null или нет, если null то дальше курить код почему так получается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 16:23     Вставить null в SQLite
Еще ссылки по теме:

Android SQLite запрос
Зашифровать Sqlite Android
JSON в SQLite Android
Android SQLite и android
Обращение к NULL TextView Android

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

Или воспользуйтесь поиском по форуму:
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
15.08.2013, 16:23  [ТС]     Вставить null в SQLite #14
Я проверю позже, но 99 %, что он не null. Другие строки из него извлекает нормально
Yandex
Объявления
15.08.2013, 16:23     Вставить null в SQLite
Ответ Создать тему
Опции темы

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