qt给了我一个错误。我需要将变量与查询结果进行比较,但放入通配符似乎不起作用。请帮忙!
Text{
id: searchresults
text: ""
font.pixelSize: 45
color: "black"
opacity: 1
x: 10
function findHerb(value) {
var db = getDB();
db.transaction(
function(tx) {
var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE "?%"', [value]);
var r = "";
for(var i=0; i<rec.rows.length; i++) {
r+= rec.rows.item(i).name + "\n"
}
text = r;
}
)
}
}
答案 0 :(得分:0)
这是一种hacky建议,因为它显然无法解决您的确切方法无法正常工作的原因。但我的猜测是%
在将参数扩展到语句中时会以某种方式引起问题。
尝试这样的事情......
var likeVal = value + "%";
var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE "?"', [likeVal]);
另外,我的另一个猜测是args已经为你带引号进行了参数设置,你正在使它成为双引号。这是另一种可能性:
var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE ?%', [likeVal]);