2012-06-27 4 views
0

데이터베이스를 생성하고 테이블을 생성했습니다. 하지만 어떤 시점에서 내가 잘못하고있어 그래서 응용 프로그램의 충돌이 시작됩니다.SQLite 삽입시 시작시 오류가 발생했습니다

private SQLiteStatement insertUserInfos; 
private static final String TN_INFO = "UserInfos"; 

private static final String CREATE_TABLE_INFO = "CREATE TABLE " 
     + TN_INFO 
     + " (\"name\" TEXT, \"surname\" TEXT, \"mail\" TEXT, \"password\" TEXT, \"birthyear\" TEXT, \"currentcity\" TEXT, \"futurecity\" TEXT, \"check\" TEXT) "; 

private static final String INSERT_INFOS = "INSERT INTO " 
     + TN_INFO 
     + " (name, surname, mail, password, birthyear, currentcity, futurecity, check) Values (?,?,?,?,?,?,?,?) "; 

public DBHelper(Context context) { 
    this.ctx = context; 

    DBOpenHelper db = new DBOpenHelper(ctx); 
    database = db.getWritableDatabase(); 

    insertUserInfos = database.compileStatement(INSERT_INFOS); 
} 

private class DBOpenHelper extends SQLiteOpenHelper { 

    public DBOpenHelper(Context context) { 
     super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREATE_TABLE_INFO); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    } 

} 

그리고 난이 오류 받고 있어요 : 여기 내 코드의 일부이다

06-27 22 : 42 : 01.870 : E/AndroidRuntime (16550)이 : android.database.sqlite :에 의한를 .SQLiteException : "check"근처 : 구문 오류 : 컴파일 중 : INSERT INTO UserInfos (이름, 성, 메일, 암호, birthyear, currentcity, futurecity, check) 값 (?,?,?,?,?,?,? ,?)

여러 번 확인했지만이 줄에는 오류가 표시되지 않았습니다. 어떤 도움이라도 아주 좋을 것입니다.

+1

일부 열 이름이 SQLIte에 예약 된 키워드이기 때문에 (나는 긍정적이지 않습니다.) (여기에 나열되어 있습니다 : http://www.sqlite.org/lang_keywords.html). INSERT INTO 문에서 열 이름 주위에 대괄호 [] 또는 큰 따옴표를 ""두는 것이 좋습니다. – AkiAki007

+0

지옥 예! =) 고마워. 나는 단지 "CHECK"가 키워드라는 것을 간과했습니다.) 간단히 말해서, 나는 "checkFlag"라는 단어를 변경하여 더 이상 키워드가 아니며 문제가 해결되었습니다! =) – yahya

+0

그런데 SQL 문자열을 만들 때 일반적으로 인용 부호를 사용하십시오. 이것은 필요하지 않습니다. – RvdK

답변

1

check는 예약어로, 당신은 그것을 인용해야합니다. create 문에서 수행하는 동안 insert 문에서이를 잊어 버린 것입니다.

+0

마찬가지로 @ AkiAki007, 네 말이 맞아.) 고마워. – yahya

관련 문제