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 中获取输出参数的值?