Russian Qt Forum
Март 28, 2024, 21:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: setFilter срабатывает только с числами  (Прочитано 3684 раз)
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 с буквами выводит пустую таблицу.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Февраль 19, 2011, 14:54 »

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

Юра.
chu
Гость
« Ответ #2 : Февраль 19, 2011, 15:10 »

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


Страница сгенерирована за 0.098 секунд. Запросов: 22.