Avec SQLite et Cordova sur un appareil Android.Cordova/SQLite: rowid undefined
J'ai une base de données contenant une table avec quelques champs.
Aucun des champs n'est une clé primaire. Les enregistrements ont par défaut rowid
généré par SQLite.
Voici une capture d'écran de la table dans le débogueur Chrome:
J'essaie d'accéder à cette rowid
(je vous épargnerai tout le code de base de données et de se concentrer sur la requête):
tx.executeSql('SELECT * FROM ServicesRondes', [], function(tx, res) {
console.log(res.rows.length); // shows 5
if (res.rows.length > 0) {
for(var i = 0; i < res.rows.length; i++) {
console.log(res.rows.item(i).time); // shows the time record
console.log(res.rows.item(i).rowid); // shows undefined
}
}
}
Donc, le problème est que le rowid
est undefined
dans les journaux.
J'ai trouvé qu'un seul lien avec un gars répondant à sa propre question: https://forum.qt.io/topic/53217/solved-how-to-access-sqlite-rowid
Comme vous pouvez le voir, il a fait une requête avec rowid
pour résoudre son problème.
Mais ce n'est pas vraiment ce que je veux (je veux tout sélectionner) et de plus, je ne comprends pas pourquoi cela fonctionne de cette façon et pas l'inverse.
Bien sûr, je pourrais créer mon propre champ de clé primaire auto-incrémenté mais j'aimerais l'éviter et ce n'est pas ma question.
Oh, merci, je ne savais pas cette chose sur les colonnes déclarées. Donc, peut-être qu'à la fin, faire ma propre colonne auto-incrémentée serait mieux que de sélectionner chaque colonne pour inclure la colonne. – Destal