【问题标题】:Ionic SQLite -- check if database existsIonic SQLite -- 检查数据库是否存在
【发布时间】:2017-10-21 14:28:13
【问题描述】:

我正在尝试 Ionic 框架。我需要在 Android SQLite 中存储一些数据。所以,我想打开或创建一个数据库,如果数据库之前不存在,用一些数据填充它。

这里说我使用create 方法,即使数据库已经存在: https://ionicframework.com/docs/native/sqlite/

于是我写了一个类:

export class Database {
  private sqlite: SQLite;
  private database: SQLiteObject = null;

  constructor() {
    this.sqlite = new SQLite();
  }

  private open_db() {
    return this.sqlite.create({
        name: 'data.db',
        location: 'default'
    })
    .then((db: SQLiteObject) => {
        this.database = db;
        return db.sqlBatch([...some sql inserts and create tables...]);
    });
  });

  public all() {
    return this.open_db().then(() => this.database.executeSql("SELECT ...something...", []));
  }

现在,我如何仅在数据库实际创建而不是打开时才调用 db.sqlBatch? 是的,这段代码在没有合理解释的情况下抛出随机异常,可以在 logcat 中看到,任何建议都将不胜感激。

【问题讨论】:

    标签: android database sqlite cordova ionic-framework


    【解决方案1】:

    使用 openDatabase 命令代替 create。如果数据库不存在,这将创建数据库。

    试试看这篇文章

    https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/

    我还建议在 $ionicPlatform.ready 的开头使用此命令并将其保存在某个全局变量中,这样您就可以在应用程序中随时访问它。我一直在使用带有 ionic v1 的 sqlite 插件。上面的链接将帮助您将它与 ionic v2 集成。

    【讨论】:

    猜你喜欢
    • 2014-04-03
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多