0

シミュレーターでは機能するがデバイスでは機能しないテーブルを作成しています。このエラーメッセージが表示されます:

Failure 1 (near "(": syntax error) on 0x2d69a8 when preparing 'CREATE TABLE request(requestidINTEGER PRIMARY KEY,longitudefromDECIMAL(10,5),lattitudefromDECIMAL(10,5),phoneINTEGER)

私は次のようなテーブルを作成しています:

 String CREATE_REQUEST_TABLE= "CREATE TABLE " + TABLE_REQUEST + "(" 
                    + KEY_REQUESTID + "INTEGER PRIMARY KEY," 
                    + KEY_LONGITUDEFROM + "DECIMAL(10,5)," 
                    + KEY_LATTITUDEFROM + "DECIMAL(10,5)," 
                    + KEY_TO + "TEXT," 
                    + KEY_DEPARTURETIME + "TIME," 
                    + KEY_ARRIVALTIME + "TIME," 
                    + KEY_DESCRIPTION + "TEXT," 
                    + KEY_PHONE + "INTEGER" + ")"; 
            db.execSQL(CREATE_REQUEST_TABLE); 
4

3 に答える 3

2

リクエストにスペースがありません。キーの前後にスペースを追加します。

String CREATE_REQUEST_TABLE= "CREATE TABLE " + TABLE_REQUEST + " (" 
                + KEY_REQUESTID + " INTEGER PRIMARY KEY, " 
                + KEY_LONGITUDEFROM + " DECIMAL(10,5), " 
                + KEY_LATTITUDEFROM + " DECIMAL(10,5), " 
                + KEY_TO + " TEXT, " 
                + KEY_DEPARTURETIME + " TIME, " 
                + KEY_ARRIVALTIME + " TIME, " 
                + KEY_DESCRIPTION + " TEXT, " 
                + KEY_PHONE + " INTEGER" + ")"; 
于 2012-05-15T21:06:01.877 に答える
1

さて、あなたがエラーメッセージで見ることができるように、それはではないにKEY_REQUESTID + "INTEGER PRIMARY KEY,"変わります。基本的に、列名と列タイプの間にスペースがないため、(SQLiteからは)単一のトークンのように見えます。requestidINTEGER PRIMARYrequestid INTEGER PRIMARY

于 2012-05-15T21:05:19.700 に答える
1

IDと「INTEGERPRIMARYKEY」の間にスペースを入れてみてください

好き;

    KEY_REQUESTID + " INTEGER PRIMARY KEY,"
于 2012-05-15T21:08:55.917 に答える