Нет такой таблицы SQLite Android - PullRequest
3 голосов
/ 14 февраля 2011

Я создал вспомогательный класс базы данных с методом open () и расширенный помощник sqlite с переопределенным onCreate (). (показано ниже). Несмотря на все это, я получаю сообщение об ошибке «SQLiteException, такой таблицы нет». Я не понимаю, почему openHelper не помогает?

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);
    }

следующий код предназначен для временной вставки записи, поскольку база данных не может быть пустой по другим причинам. Кажется, что он выполняется идеально, но последний бит кода, который следует после, вызывает ошибку

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);

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Я не знаю, почему вы реализовали open -метод, также database_create не тот, каким он должен быть.
Я предполагаю, что первый код является частью CompanyAndProductDatabaseAdapter.

Посмотрите здесь:
Android - метод базы данных Sqlite не определен для типа fot

Это почти все, что вам нужно для создания / получения БД с унаследованным SQLiteOpenHelper.

1 голос
/ 30 мая 2012

Ваша проблема в этой функции:

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

Во-первых: проверьте правильность пути / имени базы данных.Он может создать базу данных по умолчанию, пустую базу данных (без таблиц, без ничего), если база данных не найдена.

Второе: попробуйте открыть базу данных следующим образом:

String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); // or OPEN_READONLY, depending on situation.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...