android.database.sqlite.SQLiteConstraintException: код ошибки 19: ограничение не выполнено - PullRequest
2 голосов
/ 27 сентября 2011

это код ошибки:

09-27 11:56:01.425: WARN/System.err(10324): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
09-27 11:56:01.435: WARN/System.err(10324):     at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
09-27 11:56:01.435: WARN/System.err(10324):     at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
09-27 11:56:01.435: WARN/System.err(10324):     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1809)
09-27 11:56:01.435: WARN/System.err(10324):     at de.enough.appmate.dbase.CMSResource.updateItem(CMSResource.java:1103)
09-27 11:56:01.435: WARN/System.err(10324):     at de.enough.appmate.dbase.CMSResourceUpdater.updateItems(CMSResourceUpdater.java:178)
09-27 11:56:01.435: WARN/System.err(10324):     at de.enough.appmate.dbase.CMSResourceUpdater.loadUpdates(CMSResourceUpdater.java:102)
09-27 11:56:01.435: WARN/System.err(10324):     at de.enough.appmate.dbase.CMSResourceUpdaterRunnable.run(CMSResourceUpdaterRunnable.java:32)
09-27 11:56:01.435: WARN/System.err(10324):     at java.lang.Thread.run(Thread.java:1019)

и этот метод используется

this.db.execSQL("INSERT INTO itemGalleryItems (id, imageCaption, imageUrl,itemID,orderIndex,displayInGallery) VALUES (?,?,?,?,?,?); ",
                        bindArgs);

binArgs выглядит так:

String[] bindArgs = {
        (String) imageItem.get("id"),
        (String) imageItem.get("imageCaption"),
        (String) imageItem.get("imageName"),
        (String) item.get("id"),
        (String) imageItem.get("orderIndex"),
        (String) imageItem.get("displayInGallery")};

надеюсь, что кто-то может помочь

спасибо NewOne

Ответы [ 3 ]

8 голосов
/ 10 июля 2012

Я исправил эту ошибку;

вместо

long sucess = db.insert(TABLE_NAME_CONTACT_EXTRA, null, row);

используйте для вставки данных в базу данных

long sucess = db.insertWithOnConflict(TABLE_NAME_CONTACT_EXTRA, null,
                row, SQLiteDatabase.CONFLICT_IGNORE);
4 голосов
/ 27 сентября 2011

Я думаю, что если у вас есть поле автоинкремента, вы не должны включать его в запрос ... это автоинкремент "id"?

3 голосов
/ 27 сентября 2011

Посмотрите на ваше заявление вставки.Есть ли в нем все столбцы, которые объявлены не равными NULL в операторе create таблицы?И попробуйте не использовать столбец "id", вместо этого используйте "_id".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...