2009-07-13 6 views
2

私はSQLiteデータベースに次のように作成:アンドロイドデータベース:IllegalStateExceptionが問題

private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE_SETTINGS + " (" + 
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
KEY_NAME + " INTEGER UNIQUE not null, " + 
VALUE + " TEXT not null);" + 

"create table " + DATABASE_TABLE_RECORDINGS + " (" + 
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
RECORDING_FILENAME + " TEXT UNIQUE NOT NULL, " + 
RECORDING_TITLE + " TEXT NOT NULL, " + 
RECORDING_TAGS + " TEXT, " + 
RECORDING_LOCATION + " TEXT, " + 
RECORDING_TIME + " TEXT);"; 

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

を私は次のメソッドを呼び出して新しいエントリを保存しよう:

public long insertRecordingInfo(String filename, String title, String tags, int privacyLevel, String location, String recordingTime){ 
    long res = -1; 
    ContentValues recordingInfoParameters = new ContentValues(); 
    recordingInfoParameters.put(RECORDING_FILENAME, filename); 
    recordingInfoParameters.put(RECORDING_TITLE, title); 
    recordingInfoParameters.put(RECORDING_TAGS, tags); 
    recordingInfoParameters.put(RECORDING_PRIVACY_LEVEL, privacyLevel); 
    recordingInfoParameters.put(RECORDING_LOCATION, location); 
    recordingInfoParameters.put(RECORDING_TIME, recordingTime); 

    if(db != null){ 
     res = db.insert(DATABASE_TABLE_RECORDINGS, null, recordingInfoParameters); 
    } 
    return res; 
} 

けどdb.insert( )は-1を返します(新しいエントリは格納されません)、IllegalStateExceptionを返します。

java.lang.IllegalStateException: /data/data/dev.client.android/databases/clientDB.db SQLiteDatabase created and never closed 

ここに何が間違っているのか、それをどう修正することができるのかを知るreferenceから

答えて

4

:で区切られた

複数の文; sの はサポートされていません。

問題がありますか?

関連する問題