2016-11-16 122 views
0

我們正在構建一個Ionic 2(目前是beta 11)。iOS Ionic 2應用程序無法從SqlStorage中讀取

我們使用內置的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獲取數據?

回答

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); 
    } 
    ); 
相關問題