2013-04-07 2 views
0

sqlite에서 데이터베이스를 만들려고했지만 생성되지 않았습니다.Sqlite 데이터베이스 생성 문제

파일 탐색기에 데이터베이스 폴더가 표시되지 않습니다.

사람은 당신은 당신의 생성 쿼리 모두에서 구문 오류가 발생했습니다

+0

파일 탐색기에서 db를 볼 수 없습니다. 앱에만 표시됩니다. 삽입하고 읽을 수 있습니까? – vandzi

답변

1

어떤 도움을 주시면 감사

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    db = new DatabaseHelper(this); // instantiation of database helper 
    initializerMethod(); 
    reminder=new Reminder_Master(); 
    contact=new Contact_Details(); 
    Log.d("Main Acitivity", "Message"); 
    btnSave.setOnClickListener(saveHandler); 
    } 

아래에 주어진 코드

public DatabaseHelper(Context context) { 

    super(context, databasename, null, databaseversion); 
    Log.d("DatabaseHelper", "Reached Database helper"); 
    mContext = context; 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_MASTER_TABLE = "CREATE TABLE " + table_reminder_master 
      + "(" + MASTER_ID + " INTEGER PRIMARY KEY ," + MASTER_TITLE 
      + " TEXT," + MASTER_CONTACT_ID + " INTEGER," + MASTER_EMAIL_ID 
      + " INTEGER," + MASTER_TYPE_ID + " INTEGER," + ")"; 
    db.execSQL(CREATE_MASTER_TABLE); 
    Log.d("Table Create", "The table is created"); 
    Toast.makeText(mContext, "Created", Toast.LENGTH_LONG).show(); 

    String CREATE_CONTACT_TABLE = "CREATE TABLE " + table_contactDetails 
      + "(" + CONTACT_ID + " INTEGER PRIMARY KEY ," + CONTACT_NAME 
      + " TEXT," + ")"; 
    db.execSQL(CREATE_CONTACT_TABLE); 
} 

호출 클래스에서 오류를 발견 할 수 :

+ " INTEGER," + MASTER_TYPE_ID + " INTEGER," + ")"; 

+ " TEXT," + ")"; 

, 이전 )에이 안된다.

예외가 발생하고 기록되는 등의 오류가 발생하면 logcat을 확인해야합니다.

+0

구문 오류가 수정되었지만 여전히 ... 데이터베이스 생성 흔적이 없음 ... 예. logcat ..에 트랙을 유지하고 있습니다. 오류가 표시되지 않고 log.d 항목이 표시됩니다. DatabaseHelper의 onCreate 메소드 –

+0

@AbhijeetSonawane 'onCreate'는 DB 파일이 이미 존재하면 호출되지 않습니다. –

+0

@ CL. 나는 데이터베이스 버전을 변경하여 많은 시간을 보냈습니다. 데이터베이스 버전을 변경 한 후에도 테이블을 다시 만들어야합니다. –

0

DatabaseHelper 만 작성하는 것만으로는 충분하지 않습니다. getReadableDatabase() 또는 getWriteableDatabase()으로 전화해야합니다. 기본 응용 프로그램 스레드에서 디스크 I/O를 수행하지 않으려면 백그라운드 스레드에서 수행해야합니다.

관련 문제