【发布时间】:2016-12-30 05:22:21
【问题描述】:
我有一个项目,其中我有一个设置和查询本地 sqlite 数据库的服务。我正在使用来自 Ionic Native 的 cordova-sqlite-plugin 和 Sqlite。
这是打开数据库后我必须打开数据库并创建表的代码。
import {Injectable} from '@angular/core';
import {SQLite} from "ionic-native";
@Injectable()
export class LocalDbService {
sqlDb: SQLite;
constructor() {
this.sqlDb = new SQLite();
}
openDatabase() {
return this.sqlDb.openDatabase({
name: 'app.db',
location: 'default'
}).then(() => {
return this.sqlDb.transaction((tx) => {
tx.executeSql(`create table if not exists groups (
id nvarchar(50) primary key not null,
name nvarchar(50) unique not null,
createdOn datetime not null default current_timestamp,
updatedOn datetime not null default current_timestamp,
deleted boolean not null default 0
)`, [])
})
}).catch((err) => {
console.error('Error while creating tables', err);
})
}
}
数据库正确打开。但是,问题是创建表的事务总是抛出错误。在我记录错误的捕获阶段,它始终是未定义的。
如果我执行一个简单的 executeSql 方法而不是事务,它运行良好。我目前正在基于 Android 6.0 的设备上运行代码。
我已经阅读了 Cordova sqlite 插件中sql transactions 的以下文档以及 Ionic native 中 Sqlite 插件的文档。
在 Ionic 2 中使用 Sqlite 事务的正确方法是什么?
【问题讨论】:
标签: sqlite cordova angular transactions ionic2