我有一个构建并填充数据的简单数据库,我从设备中提取数据库并检查它,这是正确的,但是当我使用cordova插件(https://github.com/litehelpers/Cordova-sqlite-storage)查询数据库时,我在日志中有这个:
“{” 行 “:{” 长度 “:15},” 的RowsAffected “:0}”
表示查询已成功找到记录。但是当我使用item函数来获取结果时,它会抛出异常,在设备准备好并生成数据库并填充之后会触发以下代码。
var dataBase = window.sqlitePlugin.openDatabase({name: "database.sqlite"});
dataBase.transaction(function(db) {
db.executeSql("select * from Settings;", [], function(db, res) {
if(res.rows.length > 0) {
try{
console.log(JSON.stringify(res));
alert("RowsObject"+JSON.stringify(res.rows.item(0)));
}
catch(e){
alert("failed get results from query"+JSON.stringify(e));
}
}
}, function(db, e){
console.log("error in sql:"+JSON.stringify(e));
});
});
答案 0 :(得分:2)
有同样的问题,回到最新的稳定版本,它再次起作用。
cordova插件删除cordova-sqlite-storage
cordova插件添加cordova-sqlite-storage@0.7.10
答案 1 :(得分:0)
答案 2 :(得分:0)
我在这里有一个有趣的发现。
如果您使用link
,则会收到问题中提到的结果,并且尝试访问"select * from Settings;"
会导致错误。
相反,如果您在查询中使用字段名称,例如item
,您仍会获得问题中提到的结果,以及您应该能够访问项目。
您可以通过迭代逐个访问项目。
"select field1, field2 from Settings;"
我正在使用 cordova-sqlite-storage 版 2.2.1