Я пытаюсь создать простое приложение для Android с Ionic . Я хочу использовать базу данных SQL Lite с помощью некоторых статей о SQL Lite и Ionic и Ionic и Cordova из браузера . Мне удалось настроить свою базу данных (по крайней мере, мое приложение, кажется, работает) с помощью следующего кода, используемого в app.components.ts после this.initializeApp()
:
init_db(){
var config = this.sqlite.create({
name: 'data.db',
location: 'default'
})
.then((db: SQLiteObject) =>{
this.db = db;
db.executeSql('CREATE TABLE "ExpenseModel" ( `EXPENSE_LIMIT` INTEGER NOT NULL, `ID` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `MODEL_NAME` TEXT NOT NULL UNIQUE, `PINNED` INTEGER )');
// .then(() => console.log('Executed'))
// .catch(e=> console.log(e));
});
// .catch(e => console.log(e));
(обработка исключений закомментирована только для того, чтобы увидеть, было ли выброшено исключение)
Однако следующий код, выполняющий простую вставку SQL Lite, не работает:
this.db.executeSql('INSERT INTO "ExpenseModel" (EXPENSE_LIMIT, ID, MODEL_NAME, PINNED) VALUES ( 5,1, \'asd\', 1)');
Когда я запускаю приложение с ionic cordova run browser
, я получаю белый экран. Когда я запускаю его с ionic serve
и перехватываю все исключения (в противном случае даже db init не будет работать), я получаю ошибку Невозможно прочитать свойство executeSql из неопределенного
Что я делаю не так? Мой код вставки работал в онлайн-редакторе , поэтому я не предполагаю, что это SQL.