public static String KEY_ROWID = "_id"; public static String KEY_CAL = "Cal"; public static String KEY_DAY = "Day";
private static final String DATABASE_CREATE = "create table users (" + "_id integer primary key autoincrement, " + "Cal int not null, " + "Day text not null);";
public long insertRow(int cal, String day) { ContentValues insertValues = new ContentValues(); insertValues.put(KEY_CAL, cal); insertValues.put(KEY_DAY, day); return mDb.insert(DATABASE_TABLE, null, insertValues); }
mDbHelper.insertRow(900, "today");
--------------------------------------------------------------------------------------------------------------------------------------------------------------
인터넷에서 소스를 참조하여 변형시켰는데 토스트 해보면 데이터가 들어가지 않았다고 -1을 반환합니다.
adb로 확인해보면 table 자체가 생성되지 않는것 같은데, 소스코드가 잘못된 것인지 확인부탁드립니다.
ps1) 다른부분의 코드는 생략하였습니다.
ps2) log cat 첨부합니다.
PS3) 공지사항 읽었습니다!
--------------------------------------------------------------------------------------------------------------------------------------------------------------
06-07 12:52:05.324: E/Database(331): Error inserting Cal=900 Day=today
06-07 12:52:05.324: E/Database(331): android.database.sqlite.SQLiteException: no such table: users: , while compiling: INSERT INTO users(Cal, Day) VALUES(?, ?);
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1569)
06-07 12:52:05.324: E/Database(331): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
06-07 12:52:05.324: E/Database(331): at kr.ac.kmu.android.dbtest.DbAdapter.insertRow(DbAdapter.java:71)
06-07 12:52:05.324: E/Database(331): at kr.ac.kmu.android.dbtest.DbMain.onCreate(DbMain.java:24)
06-07 12:52:05.324: E/Database(331): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-07 12:52:05.324: E/Database(331): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-07 12:52:05.324: E/Database(331): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-07 12:52:05.324: E/Database(331): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-07 12:52:05.324: E/Database(331): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-07 12:52:05.324: E/Database(331): at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 12:52:05.324: E/Database(331): at android.os.Looper.loop(Looper.java:123)
06-07 12:52:05.324: E/Database(331): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-07 12:52:05.324: E/Database(331): at java.lang.reflect.Method.invokeNative(Native Method)
06-07 12:52:05.324: E/Database(331): at java.lang.reflect.Method.invoke(Method.java:507)
06-07 12:52:05.324: E/Database(331): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-07 12:52:05.324: E/Database(331): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-07 12:52:05.324: E/Database(331): at dalvik.system.NativeStart.main(Native Method)
06-07 12:54:16.313: I/Database(426): sqlite returned: error code = 1, msg = no such table: users
테이블이 없다는 오류인데 데이터베이스 Create 하는 부분을 올려주시징....
SQLiteOpenHelper extends 클래스에 Create Override 부분입니다.
// 다크블러드님의 소스
private static final String DATABASE_CREATE =
"create table users (" +
"_id integer primary key autoincrement, " +
"Cal int not null, " +
"Day text not null);";
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL( DATABASE_CREATE );
}
create 쿼리 날린다음에 commit하셨나요