typescript 的ExecuteSQLしか使わないという鉄の制约を课したうえで,SQLite的プラグインのモックを使う
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 的ExecuteSQLしか使わないという鉄の制约を课したうえで,SQLite的プラグインのモックを使う相关的知识,希望对你有一定的参考价值。
import { Injectable } from "@angular/core";
declare var window: any;
@Injectable()
export class DbMock {
mockdb;
databaseFilename: string = "mock.db";
constructor() {
this.mockdb = window.openDatabase(this.databaseFilename, "0.1", this.databaseFilename, 1024 * 1024);
}
public openDatabase() {}
public executeSql(sql, param) {
return new Promise((resolve, reject) => {
if (typeof param === "string") {
param = [];
}
this.mockdb.transaction(tx => tx.executeSql(sql, param, (tran, resp) => resolve(resp)), error => reject(error), () => {});
});
}
public sqlBatch(sqlArray) {
return new Promise((resolve, reject) => {
for (let i = 0; i < sqlArray.length; i++) {
this.executeSql(sqlArray[i], "")
.then(res => {})
.catch(error => reject(error));
}
resolve(true);
});
}
}
if (this.platform.is("cordova")) {
this.sqlite.create(config).then(db => {
this.initializeDatabaseTables(db, dbConfig).subscribe(
res => { },
error => console.error(error) ,
() => {
this.db = db
})
} else {
let db = this.dbMock
this.initializeDatabaseTables(db, dbConfig).subscribe(
res => { },
error => observer.error(error),
() => {
this.db = db
}
)
}
以上是关于typescript 的ExecuteSQLしか使わないという鉄の制约を课したうえで,SQLite的プラグインのモックを使う的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 expo-sqlite 执行带有 typescript 的 sql?
c_cpp [失败]一部のキューブしか回らない
SQLServer : EXEC和sp_executesql的区别
使用 executeSql 插入多个
SP_EXECUTESQL 中的 SQL 注入
如何在执行 sp_executesql 中获取输出参数的值?