Я создаю базу данных SQLite для моего приложения во время выполнения, если она не существует, и вставляю строки, если она существует. Так как он должен быть создан во время выполнения, и я реализовал его, создав подкласс SQLiteOpenHelper и переопределив метод onCreate () -
«Нужно ли что-нибудь помещать в папку / assets моего проекта?»
Я не использую контент-провайдера «Нужно ли добавлять какие-либо теги в AndroidManifest.xml?»
Вот что я сделал. Строки были определены правильно, и я не получаю никаких исключений времени выполнения.
Реализация подкласса SQLiteOpenHelper.
public class MyDB extends SQLiteOpenHelper {
public MyDB(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION );
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(USERAUTH_TABLE_CREATE);
db.execSQL(USERPREF_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
Log.w("Example", "Upgrading database, this will drop tables and
recreate.");
db.execSQL("DROP TABLE IF EXISTS " + USERAUTH_TABLE_NAME);
db.execSQL("DROP TABLE IF EXISTS " + USERPREF_TABLE_NAME);
onCreate(db);
}
}
Здесь я создаю экземпляр подкласса MyDB в SQLiteOpenHelper.
MyDB tdb = new MyDB(Activity.this);
SQLiteDatabase db = tdb.getReadableDatabase();
Все работает, и когда я иду в оболочку sqlite и пишу следующий запрос
select * from table_name - это просто говорит мне, что такой записи не существует. Я установил точки останова, и кажется, что после вызова getReadableDatabase () метод @Override OnCreate () никогда не выполняется, и именно здесь я выполняю SQL-таблицы Create table. Я пробовал getWritableDatabase ()
также.
Я не понимаю, почему таблицы не создаются. Если кто-то может помочь, это было бы здорово.
Спасибо.
Текстовая строка запроса # 1
частная статическая конечная строка USERAUTH_TABLE_CREATE =
"CREATE TABLE" + USERAUTH_TABLE_NAME + "(" +
"число INTEGER NOT NULL" +
"ОГРАНИЧИТЬ ТЕКСТ НЕ НУЛЬ", +
"E-mail ТЕКСТ НЕ НУЛЬ", +
"ТЕКСТ НЕТ НУЛЬ", +
"flag INTEGER" + ");" ;
Текстовая строка запроса # 2
private static final String USERPREF_TABLE_CREATE =
"CREATE TABLE " + USERPREF_TABLE_NAME + " (" +
"tpd TEXT NOT NULL ," +
"cat TEXT NOT NULL" + ");";