我正在开发一个带有Ionic和SQLITE数据库的移动应用程序。我想要一个不应该为Inventory操作插入两次相同记录的场景。我正在检查数据库如下:
var query = "SELECT COUNT(*) FROM productScan WHERE uniqueId = (?) AND sync = \'N\'";
$cordovaSQLite.execute(db, query, [uniqueId]).then(function (res) {
alert(JSON.stringify(res));
}, function (err) {
alert(JSON.stringify(err));
});
这里发生的事情是当我第一次安装应用程序并运行它然后在扫描操作后运行此代码进行重复检查时,即使数据库中没有记录,它也会给出以下输出
{"rows":{"length":1},""rowsAffected":0}
我是结构化查询语言(SQL)的新手。我无法解析结果。结果出了问题。查询是否需要重新格式化或以任何不同的方式实现目标?
谢谢你的时间。
我是这样做的
JSON.stringify(data.rows.item(0)['COUNT(*)'])
最好的方法是将ALIAS提供给COUNT(*)。
这样的事情
db.executeSql("select count(*) AS TOTAL from mydebit where aid = ?", [
parseInt(this.mydata)
]);
然后
console.log(data.rows.item(0).TOTAL)
所以我们可以很容易地给出返回结果的名称并使用得到他的行值cheersss ..... !!!!!!!!!
不知何故,我设法以不同的方式实现它
var query = "SELECT * FROM productScan WHERE uniqueId = (?) AND sync = \'N\'";
$cordovaSQLite.execute(db, query, [uniqueId]).then(function (res) {
if (res.rows.length == 0) {
//processed the operation
}else{
alert('You have already scanned this asset!.');
}
var query = "SELECT COUNT(*) FROM productScan WHERE uniqueId = (?) AND sync = \'N\'";
$cordovaSQLite.execute(db, query, [uniqueId]).then(function (res) {
just parse the result,(json.parse(res)) and find by rowsAffected like
if(rowsAffected != 0)
{
//just do the operation
}
else {
//terminate
}