Ho allegato $cordovaSQLite
alla mia app ionica. Ecco un esempio di base del codice.Recupero di dati da oggetti che non funzionano in ionica
function retrieve() {
var q = $q.defer();
var query = 'SELECT user_credentials, user_id FROM Users;';
$ionicPlatform.ready(function(){
$cordovaSQLite.execute(db, query).then(function(res) {
if (res.rows.length > 0) {
console.log("found user");
console.log(res);
console.log(JSON.stringify(res));
q.resolve(res.rows[0]);
} else {
console.log("no rows found");
q.resolve(false);
}
}, function (err) {
q.reject(err);
});
});
return q.promise;
}
Ecco il codice per aprire il db.
if(window.cordova) {
// App syntax
db = $cordovaSQLite.openDB("CoolApp.db");
} else {
// Ionic serve syntax
db = window.openDatabase("CoolApp.db", "1.0", "Cool App", -1);
}
quando verifico il mio app su Chrome, miei log mostrano questo
rows: SQLResultSetRowList
0: Object
user_credentials: "asdf"
user_id: 234
length: 1
rowsAffected: 0
Tuttavia quando ho visualizzare i registri quando si esegue il mio app iOS o Safari, ricevo
{"rows":{"length":1},"rowsAffected":0,"insertId":1}
La mia domanda è: perché non ricevo il valore di rows
? Perché funziona sul browser ma non su iOS?
ma nel browser anche rowsaffected è 0! – tharif
Le righeAffected sono irrilevanti per me. Ciò che conta è il contenuto della riga. A meno che non mi sbagli. – jason328
@ jason328 Ci sono dei record nel database del telefono? – Vidul