2014-01-27 62 views
0

我logcat的消息:Android的語法錯誤,同時創建表的數據庫

(1)附近的 「整數」:語法錯誤 異常在CREATE_SQL android.database.sqlite.SQLiteException:近 「整數」:語法錯誤(codee1 ):,編譯時:創建BOMUL_PLACE(_id INTEGER NOT NULL PRIMARY KEY AUTOICREMENT,NAME TEXT,LAT DOUBLE,LNG DOUBLE,CHECK INTEGER DEFAULT 0);

和我的代碼:

公共無效的onCreate(SQLiteDatabase分貝) { // TABLE_BOMUL_PLACE 的println( 「創建表[」 + TABLE_BOMUL_PLACE + 「]」);

 //drop existing table 
     String DROP_SQL = "drop table if exists " + TABLE_BOMUL_PLACE; 
     try 
     { 
      db.execSQL(DROP_SQL); 
     } 
     catch(Exception ex) 
     { 
      Log.e(TAG, "Exception in DROP_SQL", ex); 
     } 


     String CREATE_SQL = "create table " + TABLE_BOMUL_PLACE + "(" 
       + " _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " 
       + " NAME TEXT, " 
       + " LAT DOUBLE, " 
       + " LNG DOUBLE, " 
       + " CHECK INTEGER DEFAULT 0);"; 

     try 
     { 
      db.execSQL(CREATE_SQL); 
     } 
     catch(Exception ex) 
     { 
      Log.e(TAG, "Exception in CREATE_SQL", ex); 
     } 

回答

1

語法錯誤來自CHECK列。 CHECK是一個SQL保留字,需要重命名或"quoted"。從logcat中,你似乎

其他語法問題中的代碼已經解決:

create BOMUL_PLACE(_id INTEGER NOT NULL PRIMARY KEY AUTOICREMENT, NAME TEXT, LAT DOUBLE, LNG DOUBLE, CHECK INTEGER DEFAULT 0 
  • CREATE TABLETABLE失蹤

  • AUTOINCREMENT拼錯

  • )在失蹤結束

而且,NOT NULL對於主鍵列是多餘的。

固定onCreate()後,所以以前的數據庫文件被刪除,onCreate()再次調用卸載你的應用程序。不建議捕捉異常,因爲SQLiteOpenHelper會認爲創建成功,如果onCreate()正常返回。

+0

感謝laalto你的建議工作。 「檢查」是問題 –

-1

你可以嘗試表名TABLE_BOMUL_PLACE(符號之間添加空間。

it should be 
TABLE_BOMUL_PLACE + " (" 
+0

我試過了。但它沒有工作 –

+0

嘗試重命名列名稱「檢查」。它是SQLIte中的關鍵字。 – Armen

+0

阿門感謝問題是「檢查」。改變後,沒有錯誤! –