【问题标题】:iOS Ionic 2 app unable to read from SqlStorageiOS Ionic 2 应用程序无法从 SqlStorage 读取
【发布时间】:2016-11-16 17:33:02
【问题描述】:

我们正在构建 Ionic 2(目前是 beta 11)。

我们使用的是内置的 SqlStorage 数据库。在 Android 上,我们的应用程序能够很好地读取和写入日期,但在 iOS 上,我们只能写入数据。当我们尝试读取数据时,我们得到返回的行数,但没有实际数据。

getQueueItems(): Promise<any> {
 return new Promise<any>((resolve, reject) => {
   this.sql.query('SELECT * FROM queue').then(
     (res) => {
       console.log(res, 'result');
      //  resolve(sqlResult.res.rows);
     }
   );
 }).catch(() => {

 });

}

结果集如下所示:

    {
"tx": {
    "db": {
        "openargs": {
            "name":"__ionicstorage",
            "location":2,
            "createFromLocation":0,
            "backupFlag":2,
            "existingDatabase":false,
            "dblocation":"nosync"
        },
    "dbname":"__ionicstorage"
    },
    "txlock":true,
    "readOnly":false,
    "executes":[],
    "finalized":true
},
"res": {
    "rows": {
        "length":3
    },
    "rowsAffected":0
}
}

有谁知道我们如何从 SqlStorage 中读取数据以便 iOS 获取数据?

【问题讨论】:

    标签: ios ionic-framework sqlstorage


    【解决方案1】:

    经过大量搜索和阅读大量论坛帖子,我们终于找到了答案。我在这里为将来的搜索者发帖,希望对您有所帮助。

    诀窍在于,为了让所有平台都可以使用查询结果,您必须自己迭代结果集并添加适当的对象。

       this.sql.query('SELECT * FROM queue').then(
         (sqlResult) => {
           let queueItems = [];
           for(let i = 0; i < sqlResult.res.rows.length; i++){
             queueItems.push(sqlResult.res.rows.item(i));
           }
          resolve(queueItems);
         }
       );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2016-09-10
      • 2017-03-31
      • 2018-01-24
      • 1970-01-01
      • 2018-06-23
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多