2012-03-28 294 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