запрос на выборку с подстановочным знаком, не работающим в QT - PullRequest
0 голосов
/ 28 марта 2012

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 голосов
/ 29 марта 2012

Это своего рода хакерское предложение, поскольку оно явно не учитывает, почему ваш точный подход не работает правильно.Но я предполагаю, что % каким-то образом вызывает проблему, когда расширяет параметры в операторе.

Попробуйте что-то вроде этого ...

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

Кроме того, мое другое предположениев том, что аргументы для вас параметризованы с кавычками, а вы делаете двойную кавычку.Вот еще одна возможность:

var rec = tx.executeSql('SELECT name FROM Herbs WHERE name LIKE ?%', [likeVal]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...