Присвойте начальное значение Sqlite при onCreate - PullRequest
0 голосов
/ 09 мая 2018

Я даю начальное значение Sqlite, когда onCreate. Но монитор Android показывает сообщение об ошибке ниже.

Код ошибки: 5 (SQLITE_BUSY) Причина: файл базы данных заблокирован. (база данных заблокирована (код 5): при компиляции: PRAGMA journal_mode)

Что-то не так с моим кодом?

private SQLiteDatabase DefaultWritableDatabase = null;
private static final String DATABASE_NAME = "arrived.db";
private static final int DATABASE_VERSION = 3;

@Override
public SQLiteDatabase getWritableDatabase() {
    final SQLiteDatabase db;
    if (DefaultWritableDatabase != null) {
        db = DefaultWritableDatabase;
    } else {
        db = super.getWritableDatabase();
    }
    return db;
}

@Override
public void onCreate(SQLiteDatabase db) {
    this.DefaultWritableDatabase = db;
    // Create table
    String Create_Query = "CREATE TABLE IF NOT EXISTS  arrivedservice ("
            + "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
            + "Lat TEXT ,"
            + "Lon TEXT , "
            + "LeaveTime INTEGER "
            + ");";
    db.execSQL(Create_Query);

    //Give initial value to the Sqlite when onCreate
    String LeaveTime = String.valueOf(System.currentTimeMillis());
    String Insert_Query = "INSERT INTO arrivedservice (_id,Lat,Lon,LeaveTime) VALUES ('1','240.22652','151.523978'," + LeaveTime + ")";
    db.execSQL(Insert_Query);
}

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы не должны вызывать close() на SQLiteDatabase, который был передан onCreate() в качестве аргумента. Вы не открыли его и не владеете им.

0 голосов
/ 09 мая 2018

Попробуйте эту строку перед выполнением запроса вставки

db.getWritableDatabase();// add this line
String LeaveTime = String.valueOf(System.currentTimeMillis());
String Insert_Query = "INSERT INTO arrivedservice (_id,Lat,Lon,LeaveTime) VALUES ('1','240.22652','151.523978'," + LeaveTime + ")";
db.execSQL(Insert_Query);
db.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...