Ionic 2 Sqlite android: java.sql.SQLException: sqlite3_step Ошибка: невозможно выполнить откат
Я новичок в Ionic, пытаюсь создать мобильное приложение с автономной поддержкой. Я пытаюсь создать базу данных используя cordova sqlite
плагин. Я вижу файл базы данных в моем эмуляторе data\data\package\data.db
, Невозможно выполнить любой оператор вставки.
import { Component } from '@angular/core';
import { NavController, Platform } from 'ionic-angular';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
dbHandle : SQLiteObject;
constructor(public navCtrl: NavController, private sqlite: SQLite, public plt: Platform) {
this.plt.ready().then((readySource) => {
console.log('Platform ready from', readySource);
// Platform now ready, execute any required native code
this.handleDbCreation();
});
}
handleDbCreation() {
this.sqlite.create({
name: 'data.db',
location: 'default'
}).then((db: SQLiteObject) => {
this.dbHandle = db;
db.executeSql('create table danceMoves(name VARCHAR(32))', {})
.then(() => {console.log('Executed SQL')
this.insertDataIntoDB();
})
.catch(e => console.log(e));
}).catch(e => console.log(e));
}
insertDataIntoDB(){
this.dbHandle.executeSql("insert into danceMoves values(?)",['testing'])
.then((resultSet)=>{
console.log('resultSet.insertId: ' + resultSet.insertId);
console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected);
})
.catch((error)=>{
console.log('SELECT error: ' + error.message);
});
}
}
Я получаю указанную ниже ошибку.
D / SystemWebChromeClient (11475): файл:///android_asset/www/plugins/cordova-sqlite-storage/www/SQLitePlugin.js: строка 179: ОТКРЫТЬ базу данных: data.db - OK [ИНФО: КОНСОЛЬ (179)] " ОТКРЫТАЯ база данных: data.db - OK", источник: файл:///android_asset/www/plugins/cordova-sqlite-storage/www/SQLitePlugin.js (179) java.sql.SQLException: ошибка sqlite3_step: невозможно выполнить откат - нет транзакция активна по адресу io.liteglue.SQLiteGlueConnection$SQLGStatement.step(SQLiteGlueConnection.java:135) по адресу io.sqlc.SQLiteConnectorDatabase.executeSQLiteStatement(SQLiteConnectorDatabase.java:214) по адресу io.sqlc.SQLiteConnectorDatabase.BaseNetConnector_javaConnect_js в io.sqlc.SQLitePlugin$DBRunner.run(SQLitePlugin.java:340) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) в java.util.concurrent.ThreadPoolExcecutor.:587) at java.lang.Thread.run(Thread.java:841) SQLitePlugin.executeSqlBatch: Ошибка = ошибка sqlite3_step: невозможно выполнить откат - нет транзакции является активным по адресу io.sqlc.SQLiteConnectorDatabase.executeSqlBatch (SQLiteConnectorDatabase.java:114) по адресу io.sqlc.SQLitePlugin$DBRunner.run(SQLitePlugin.java:340) по адресу java.util.concurrent.ThreadPoolExecutor.runjolec) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) в java.lang.Thread.run (Thread.java:841) SQLitePlugin.executeSqlBatch: код ошибки SQL = 1 сообщение = ошибка sqlite3_step: ошибка отката: невозможно выполнить откат - ошибка возврата транзакция не активна