选择通配符不能在QT中工作的查询

时间:2012-03-28 16:39:09

标签: qt wildcard qml select-query

当我尝试在我的选择查询中添加通配符时,

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;

            }
        )

    }
}

1 个答案:

答案 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]);