создание таблицы в SQLiteDatabase завершается неудачно - PullRequest
0 голосов
/ 17 октября 2011

Я добавляю новую таблицу в свою базу данных с этим кодом:

 @Override
  public void onCreate(SQLiteDatabase db) {
  db.execSQL("CREATE TABLE" + QRCODE_LINK + "(" +
                    "ID" + "INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + "Title" + "text,"
                    + "HISTORY" + " text not null);" );
}

Тем не менее, я получаю сообщение об ошибке всякий раз, когда вставляю данные, потому что таблица, согласно журналам, не существует. Я что-то пропустил, когда создал таблицу?

Вот лог:

10-17 13:56:55.362: ERROR/Database(6791): Error inserting inhistory=1 qr_url=data1
10-17 13:56:55.362: ERROR/Database(6791): android.database.sqlite.SQLiteException: no such table: qrcode_link: , while compiling: INSERT INTO qrcode_link(inhistory, qr_url) VALUES(?, ?);
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1123)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1509)
10-17 13:56:55.362: ERROR/Database(6791):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1382)

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

у них не было места после создания таблицы

0 голосов
/ 17 октября 2011

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

Это правильно в вашем столбце History, но запись в вашем столбце ID у вас действительно есть IDINTEGER и в васTitle столбец у вас есть Titletext.

@Override   public void onCreate(SQLiteDatabase db) {   db.execSQL("CREATE TABLE" + QRCODE_LINK + "(" +
                    "ID" + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + "Title" + " text,"
                    + "HISTORY" + " text not null);" ); }

Надеюсь, это имеет смысл:)

РЕДАКТИРОВАТЬ

Хорошо. Прочитайте код еще раз.Вам нужен интервал при создании таблицы "CREATE TABLE " + QRCODE_LINK + "(" и т. Д.

На самом деле, как сказал Агризеан.Но без других исправлений у вас не будет правильных столбцов.

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