2012-03-28 31 views
0

当我尝试在我的选择查询中放入通配符时,qt给了我一个错误。我需要比较一个变量与查询结果,但放入通配符似乎不工作。请帮助!使用通配符选择查询不能在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

为什么不包括错误? – jdi 2012-03-29 01:08:45

+0

这是错误错误:参数计数不匹配 – 2012-03-29 13:27:46

回答

0

这是一种有趣的建议,因为它显然没有解决为什么你的确切方法无法正常工作。但我的猜测是%在将参数扩展到语句中时会引起某种问题。

尝试这样的事情......

var likeVal = value + "%"; 
var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE "?"', [likeVal]); 

而且,我的另一个猜测是,ARG游戏参数为你报价已经并且正在这双引号。这是另一种可能性:

var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE ?%', [likeVal]); 
+0

它的工作!哈哈,感谢很多! – 2012-03-29 20:18:10

+0

第一或第二个建议?只是想也许更新我的答案,以便未来的人清楚 – jdi 2012-03-29 20:41:38

+0

@GastonManrique:如果此答案解决您的问题,不要忘记打勾选! – jdi 2012-03-31 19:01:05