2013-12-14 2 views
0

라는 이름의 열이 없습니다. 앱을 제거하고 새 에뮬레이터를 만들었지 만 문제가 아직 남아 있으므로 인터넷에 도움이 될만한 단서가 없습니다. :). 로그에 "sms_sentdate"라는 열이 있습니다. 누락 된 열입니다. 확인 된 값은 확인하고 문제는 알아낼 수없는 스키마 어딘가에 있습니다.Android SQLite 문제 표 ...

너희들이있는 동안 내 현재의 방법이 잘못되면 스키마가 업데이트되었다는 것을 어떻게 알릴 수 있는지 조언 해주세요.

public class SMSdb extends SQLiteOpenHelper{ 
private final static String DB_NAME = "SMSDB"; 
private final static int DB_VERSION = 4; 

private static final String KEY_ID = "sms_id"; 
private static final String KEY_Text = "sms_text"; 
private static final String KEY_SMSReceiver = "sms_reciever"; 
private static final String KEY_Recurrence = "sms_recurrence_id"; 
private static final String KEY_SentDate = "sms_sentdate"; 
private static final String TABLE_SMS = "sms"; 
private static final String[] COLUMNS = { KEY_ID, KEY_Text, KEY_SMSReceiver, KEY_Recurrence, KEY_SentDate}; 

public final static String DB_SMSdb_TABLE_CREATE = "create table sms " + 
     "("+KEY_ID+" integer primary key autoincrement, " + 
      KEY_Text +" text not null, "+ 
      KEY_SMSReceiver + " text not null,"+ 
      KEY_Recurrence+" integer);"+ 
      KEY_SentDate+" text);"; 

public SMSdb(Context context) 
{ 
    super(context, DB_NAME, null, DB_VERSION);  
} 

@Override 
public void onCreate(SQLiteDatabase database) { 
    // TODO Auto-generated method stub 
    Log.i("Database", "Database creating"); 
    database.execSQL(DB_SMSdb_TABLE_CREATE); 
} 

@Override 
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    database.execSQL("DROP TABLE IF EXISTS sms"); 
    onCreate(database);  
} 

public void addSms(SMS sms){ 
    Log.d("addSMS", sms.toString()); 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(KEY_Text, sms.getText()); 
    values.put(KEY_SMSReceiver, sms.getSmsReceiver()); 
    values.put(KEY_Recurrence, sms.getSms_recurrence_id()); 
    values.put(KEY_SentDate, sms.getSmsSentDate()); 

    db.insert(TABLE_SMS, 
      null, 
      values); 
    db.close(); 
} 

} 

답변

1

당신이 매달려에 대한 구문 오류가 발생하지 않도록 SQL은 제 ;에 종료되고 남아있는 SQL이 실행되지 않습니다

KEY_Recurrence+" integer,"+ 
KEY_SentDate+" text);"; 

KEY_Recurrence+" integer);"+ 
KEY_SentDate+" text);"; 

교체 열 지정.

+0

나를 이길 : –

+0

젠장! ** 블러디 세미콜론 ** –

+0

고마워! @laalto, 나는 **을 제외하고 모두를 확인했습니다 **, 지금 부끄러워합니다 : P –