iOS Ionic 2应用程序无法从SqlStorage读取

时间:2016-11-16 17:33:02

标签: ios ionic-framework sqlstorage

我们正在制作Ionic 2(目前是测试版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获取数据?

1 个答案:

答案 0 :(得分:0)

经过大量搜索和阅读大量的论坛帖子后,我们终于找到了答案。我在这里张贴给未来的搜索者,希望它会对你有帮助。

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

   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);
     }
   );