2011-02-14 6 views
3

open() 메서드로 데이터베이스 도우미 클래스를 빌드하고 onCreate()를 오버라이드하여 확장 sqlite 도우미를 작성했습니다. (아래 그림 참조). 이 모든 노력에도 불구하고 'SQLiteException, no such table'오류가 발생합니다. 이해가 안되는데 왜 openHelper가 도움이되지 않습니까?해당 테이블 없음 SQLite Android

public void open() { 
    try{ 
     db = openHelper.getWritableDatabase(); 
    } catch (SQLiteException e) { 
     db = openHelper.getReadableDatabase(); 
    } 
} 

//other stuff 

public static final String database_create = "create table " + database_table + " (" + primary_key + " integer primary key autoincrement, " 
    + company_column + " text not null, " + product_column + " text not null);"; 

    @Override 
    public void onCreate(SQLiteDatabase _db) { 
     _db.execSQL(database_create); 
    } 

다음 코드는 데이터베이스를 다른 이유로 비울 수 없기 때문에 임시로 항목을 삽입하기위한 것입니다. 그것이 있어야 무엇 그것은 완벽하게 실행하는 것, 그러나 후에 오는 코드의 마지막 비트, 당신은 open -method을 구현 이유를 모르겠어요

CompanyAndProductDatabaseAdapter cpdAdapter = new CompanyAndProductDatabaseAdapter(this); 
    cpdAdapter.open(); 
    errorguard = cpdAdapter.insertPair("Loading", "..."); 
    cpdAdapter.close(); 

//other stuff 

cpdAdapter.open(); 
    Cursor cursor = cpdAdapter.getAllPairsCursor(); //error here 
    cursor.requery(); 
    startManagingCursor(cursor); 
+0

이 어떻게가는

String myPath = DB_PATH + DB_NAME; myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); // or OPEN_READONLY, depending on situation. 
: 데이터베이스이 방법을 열려고? 네가 해결했다면. 말해줘. 그리고 대답을 수락하는 것을 고려하십시오 – Beasly

답변

2

오류가 발생합니다 것입니다, 또한 database_create은 아니다 .
첫 코드가 CompanyAndProductDatabaseAdapter의 일부라고 가정합니다.

여기를보세요 :
당신이 만들 필요가 거의 전부 Android - Sqlite database method undefined fot type

은/inherted SQLiteOpenHelper와 DB를 얻을.

+0

도움에 감사드립니다. 문제는 데이터베이스 열기 도우미가 동일한 데이터베이스에 두 개의 테이블을 만드는 데는 아무런 도움이되지 않는다는 것입니다. 새 데이터베이스를 지정하기 만하면 모든 것이 해결됩니다. 그래도 내 작성 문은 틀린거야? 지금은 효과가있는 것처럼 보이지만 더 효율적으로 만들 수 있다면 좋아할 것입니다. – reader1

+0

안녕하세요, 제가 링크를 살펴 보겠습니다. 나는 거기에 모든 것을 비난하고있다. 뭔가 명확하지 않은지 말해봐. http://stackoverflow.com/questions/4921550/where-to-close-the-database/4921720#4921720 – Beasly

+0

읽어 주셔서 감사합니다. 도움이되었습니다. 감사드립니다. – reader1

1

귀하의 문제는이 기능입니다 :

db = openHelper.getWritableDatabase(); 
    db = openHelper.getReadableDatabase(); 

첫째 : 데이터베이스의 경로/이름이 올바른지 확인합니다. 데이터베이스가없는 경우 기본 데이터베이스, 빈 데이터베이스 (테이블 없음, 아무 것도 없음)를 만들 수 있습니다.

둘째 :

이 가