получить исключение sqlite при вставке? как? - PullRequest
0 голосов
/ 24 февраля 2010

я создал базу данных вот так

db.execSQL("CREATE TABLE "+TABLE_NAME+" (" 
    +_ID+" INTEGER PRIMARY KEY AUTOINCREMENT," 
    + TITLE+" TEXT UNIQUE," 
    + PUBLISHED+" DATETIME," 
    + CONTENT+" TEXT," 
    + RATERS+" TEXT,"
    + VIEWCOUNT+" TEXT,"
    + THUMBNAIL+" TEXT,"
    + FAVCOUNT+" TEXT,"
    + FAVSTAT+" INTEGER,"
    + LINKWEB+" TEXT);");

я получил исключение при попытке вставить значения в таблицу ??

02-24 15:57:37.802: ERROR/DatabaseUtils(283): Writing exception to parcel
02-24 15:57:37.802: ERROR/DatabaseUtils(283): android.database.sqlite.SQLiteException: table bru_tube has no column named linkweb: , while compiling: INSERT INTO bru_tube(content, favstat, title, thumbnail, linkweb, raters, viewcount, published, favcount) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?);
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1026)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1412)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.database.sqlite.SQLiteDatabase.insertOrThrow(SQLiteDatabase.java:1307)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at com.brownuniv.brutube.BruTube_Provider.insert(BruTube_Provider.java:82)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.content.ContentProvider$Transport.insert(ContentProvider.java:150)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:140)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at android.os.Binder.execTransact(Binder.java:287)
02-24 15:57:37.802: ERROR/DatabaseUtils(283):     at dalvik.system.NativeStart.run(Native Method)

как это решить ??? есть идеи?

Ответы [ 5 ]

3 голосов
/ 24 февраля 2010

Вы уверены, что переменная LINKWEB также содержит текст "linkweb"? Возможно орфографическая ошибка. Вы можете использовать ADB для подключения к эмулятору и просмотра базы данных - возможно, это поможет (см. этот документ ).

1 голос
/ 24 февраля 2010

оформить заказ есть столбец "linkweb" в вашей таблице

0 голосов
/ 05 марта 2010

Я думаю, вам не хватает места после написания текста

0 голосов
/ 25 февраля 2010

я думаю, что нет никакого названия колонки linkweb.

0 голосов
/ 24 февраля 2010

Используйте sqlite3 из командной строки на эмуляторе или на рабочем столе, чтобы убедиться, что то, что вы пытаетесь достичь, правильно и не содержит синтаксических ошибок. Также проверьте схему после создания таблицы.

...