Ошибка при добавлении нескольких строк в базу данных sqlite на android

Ошибка возникает, когда я пытаюсь добавить несколько строк в базу данных sqlite. С одной строкой проблем нет. Кроме того, приложение вылетает из-за этого на samsung galaxy s2, но не на нексусе.

Вот код для создания таблицы:

 private static final String DATABASE_CREATE = "create table "
        + TABLE_AWARDS + "(" + COLUMN_ID
        + " integer primary key autoincrement, " + COLUMN_TITLE
        + " text not null, " + COLUMN_DESCRIPTION + " text not null, "
        + COLUMN_TYPE + " integer not null, " + COLUMN_ACHIEVED
        + " integer not null " + ");";

И код, который вставляет строки в таблицу:

 private static final String DATABASE_INSERT = "INSERT into  awards (title, description, type, achieved) VALUES "
        + "('Speed maximum', 'Stay', 1 , 0),"
        + "('Speed maximum', 'under 130 km/h', 2 , 0);";

Согласно ответу на вопрос о stackoverflow, который вы мне дали, синтаксис должен быть:

private static final String DATABASE_INSERT = "INSERT into  'awards' "+
        "SELECT 'Speed maximum' AS 'title', 'under 150 km/h' AS 'description', 1 AS 'type', 0 AS 'achieved'"
            +" UNION SELECT 'Speed maximum', 'under 130 km/h', 2 , 0"
            +" UNION SELECT 'Speed maximum', 'under 100 km/h', 3 , 0";

Но это тоже не работает.


person Chris    schedule 09.01.2013    source источник
comment
Пожалуйста, проверьте ответ, который я пометил. Вы должны найти там свой ответ.   -  person Vinay S Shenoy    schedule 09.01.2013
comment
Я добавил цитаты. Это тоже не работает. Я забыл еще цитаты?   -  person Chris    schedule 09.01.2013
comment
Извините, это не цитаты .. Вам нужно добавить ‹space› перед каждым заявлением UNION ..   -  person Vinay S Shenoy    schedule 09.01.2013
comment
Добавлен пробел перед UNION, по-прежнему не работает   -  person Chris    schedule 09.01.2013
comment
Вы убрали кавычки вокруг названия таблицы? Я добавил их по ошибке ...   -  person Vinay S Shenoy    schedule 09.01.2013
comment
Я пробовал с кавычками и без кавычек вокруг имени таблицы. Обе попытки не увенчались успехом.   -  person Chris    schedule 09.01.2013
comment
позвольте нам продолжить это обсуждение в чате   -  person Vinay S Shenoy    schedule 09.01.2013


Ответы (2)


В eclipse перейдите в режим отладки, поставьте точку останова после вашего запроса и во время выполнения посмотрите значение строк, таких как DATABASE_INSERT, опубликуйте его здесь или вы сами увидите ошибку.

person android2013    schedule 09.01.2013

  1. Пожалуйста, попробуйте изменить названия столбцов.
  2. Чтобы вставить лучшее решение, используйте метод insertOrThrow (читайте в Интернете).
  3. Пожалуйста, дайте мне ваш полный код расширения класса SQLiteOpenHelper.
  4. Дайте, пожалуйста, лог logcat.
person TN888    schedule 09.01.2013