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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Модель QSqlQueryModel для QComboBox!  (Прочитано 5626 раз)
linuxoid
Гость
« : Август 17, 2007, 08:14 »

делаю запрос в модели QSqlQueryModel и применяю модель в комбобокс,
запрос следующий :
"select id_key_citie from citie where city_name =" + name

name - это QString ,в нём хранится имя города которое я хочу подставить в запрос, но запрос не выполняется!я думаю что надо в запросе заключить имя  подставляемого города в ' ' ,как это сделать??и ещё пробовал:
"select id_key_citie from citie where city_name = 'Москва' " и так не получается!В БД делал имя москва на английском (Moscow),подставлял в запрос:
"select id_key_citie from citie where city_name = 'Moscow' "
 и запрос выполнился. Как мне сделать кодировку (наверно Utf8) для QString name??
заранее спасибо... :wink:
Записан
WW
Гость
« Ответ #1 : Август 17, 2007, 08:22 »

Цитата: "linuxoid"

"select id_key_citie from citie where city_name =" + name

Код:
QString("select id_key_citie from citie where city_name ='%1'").arg(name)

Ё! За что говоруном-то стал...  :roll:
Записан
linuxoid
Гость
« Ответ #2 : Август 17, 2007, 08:36 »

Веселый  :lol:

добавлено спустя 1 минуту:

 а как кодировку поменять для QString name???
Записан
SABROG
Гость
« Ответ #3 : Август 17, 2007, 08:42 »

Хранение данных в базе сделай в кодировке UTF-8
Записан
linuxoid
Гость
« Ответ #4 : Август 17, 2007, 09:11 »

да там и так стоит UTF-8!как сделать кодировку для QString name???Если менять при подключении к БД в QT кодировку ну там: QSqlQuery q   ;   q.exec(SET NAMES.........
то в таблице отображаются иероглифы!
Записан
VZ
Гость
« Ответ #5 : Август 17, 2007, 10:04 »

Цитата: "linuxoid"
да там и так стоит UTF-8!как сделать кодировку для QString name???Если менять при подключении к БД в QT кодировку ну там: QSqlQuery q   ;   q.exec(SET NAMES.........
то в таблице отображаются иероглифы!


А какая СУБД?
Записан
linuxoid
Гость
« Ответ #6 : Август 17, 2007, 10:12 »

всё спасибо я уже решил проблему!))
QTextCodec *codec = QTextCodec::codecForName("Utf8");
   QTextCodec::setCodecForCStrings(codec);
   QTextCodec::setCodecForLocale(codec);
может кому пригодится
Записан
SABROG
Гость
« Ответ #7 : Август 17, 2007, 10:43 »

А ты уверен, что тебе надо все и вся в Utf8 переводить ?

Мог бы и так это решить:

Код:

QString("select id_key_citie from citie where city_name ='%1'").arg(cbMy->currentText.toUtf8());
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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