Russian Qt Forum

Qt => Вопросы новичков => Тема начата: chu от Февраль 19, 2011, 14:08



Название: setFilter срабатывает только с числами
Отправлено: chu от Февраль 19, 2011, 14:08
использую SQLITE, сортирую по полю "place":
Код:
"CREATE TABLE test("
                       "id INTEGER PRIMARY KEY NOT NULL,"
                       ...
                       "place TEXT NOT NULL);"
функция:
Код:
void tableForm::filter(){
    qDebug()<<"fiterON";
    QString cb = cb_filter->currentText();
    qDebug()<<cb;
    if(cb!=""){
        model->setFilter(QString("place=%1").arg(cb));
        model->submitAll();
        model->select();
    }
}
cb_filter - комбоБокс заполненый значениями из "place".
если cb=числу, все работает, если cb с буквами выводит пустую таблицу.


Название: Re: setFilter срабатывает только с числами
Отправлено: lit-uriy от Февраль 19, 2011, 14:54
setFilter будет подставлен в условие WHERE, Скорее всего для данной БД нельзя написать так:
Цитировать
place=vasja
как делаешь это ты.
возможный вариант:
Цитировать
place="vasja"
тогда в коде на Си/Си++ ты должен заэкранировать полезные кавычки:
Код
C++ (Qt)
String("place=\"%1\"").arg(cb)


Название: Re: setFilter срабатывает только с числами
Отправлено: chu от Февраль 19, 2011, 15:10
setFilter будет подставлен в условие WHERE, Скорее всего для данной БД нельзя написать так:
Цитировать
place=vasja
как делаешь это ты.
возможный вариант:
Цитировать
place="vasja"
тогда в коде на Си/Си++ ты должен заэкранировать полезные кавычки:
Код
C++ (Qt)
String("place=\"%1\"").arg(cb)
спасибо! помогло