마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

db에러 로그캣 에러 좀 봐주세요

0 추천

로그캣에 나온대로 77번째 줄에 노랑색 바탕으로 해놨습니다.

다른액티비티에서 버튼을 클릭하면

현재 시간과 날짜를 얻고 save버튼을 누르면 intent로 밑에 소스액티비티로 넘겨줘야하는데

넘기는 과정에서 로그캣에 저런 오류를 내뿜네요..

 

public class dbActivity extends ListActivity {
 
   ArrayList<String> item;
   ArrayAdapter<String> adapter;
   ListView listo;
   TextView data;
 
   Context context;
      DBHelper dbHelper;
  
   final static String dbName = "terbo.db";
   final static int dbVersion = 1;
  
   SQLiteDatabase db;
   String sql;
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     //setContentView(R.layout.activity2nd);
     // TODO Auto-generated method stub
    
    
    
     Intent intent = getIntent();
    
     String time = intent.getExtras().getString("time").toString();
     String juso = intent.getExtras().getString("local").toString();
    
     item = new ArrayList<String>();
     item.add(time+juso);
        
     adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_multiple_choice, item);
     getListView().setTextFilterEnabled(true);
    
     //리스트액티비티의 아이디 찾는 방법은 다르다.
     listo = (ListView)findViewById(android.R.id.list);
  listo.setAdapter(adapter); 
  
  adapter.notifyDataSetChanged();   
   
  //db에 저장
  dbHelper = new DBHelper(this, dbName, null, dbVersion);
  db = dbHelper.getWritableDatabase();
  sql=String.format("INSERT INTO dbName VALUE(null, '%s');", item);
  db.execSQL(sql);
 }
 
 public class DBHelper extends SQLiteOpenHelper {
  //생성자
  public DBHelper(Context context, String name, CursorFactory factory, int version) {
   super(context, name, factory, version);
  }
        //최초 DB를 만들때 한번만 호출된다.
  @Override
  public void onCreate(SQLiteDatabase db) {
   // TODO Auto-generated method stub
   db.execSQL("CREATE TABLE dbName(_id INTEGER PRIMARY KEY AUTOINCREMENT,"+ "time INTEGER, juso TEXT);");
  }

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

================================================================

06-04 07:40:56.509: E/AndroidRuntime(4443): FATAL EXCEPTION: main
06-04 07:40:56.509: E/AndroidRuntime(4443): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gps0528/com.example.gps0528.dbActivity}: android.database.sqlite.SQLiteException: near "VALUE": syntax error: , while compiling: INSERT INTO dbName VALUE(null, '[2013.06.04 16:40:52]');
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.os.Looper.loop(Looper.java:137)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread.main(ActivityThread.java:4424)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at java.lang.reflect.Method.invokeNative(Native Method)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at java.lang.reflect.Method.invoke(Method.java:511)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at dalvik.system.NativeStart.main(Native Method)
06-04 07:40:56.509: E/AndroidRuntime(4443): Caused by: android.database.sqlite.SQLiteException: near "VALUE": syntax error: , while compiling: INSERT INTO dbName VALUE(null, '[2013.06.04 16:40:52]');
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:84)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1899)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1839)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at com.example.gps0528.dbActivity.onCreate(dbActivity.java:77)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.Activity.performCreate(Activity.java:4465)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-04 07:40:56.509: E/AndroidRuntime(4443):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-04 07:40:56.509: E/AndroidRuntime(4443):  ... 11 more

앤드류이드 (6,190 포인트) 님이 2013년 6월 4일 질문

1개의 답변

0 추천
 
채택된 답변
VALUE 를 VALUES 로 수정해서 시도해보세요..
블랙넥원 (9,600 포인트) 님이 2013년 6월 4일 답변
앤드류이드님이 2013년 6월 4일 채택됨
...