Russian Qt Forum

Qt => Базы данных => Тема начата: linuxoid от Август 17, 2007, 08:14



Название: Модель QSqlQueryModel для QComboBox!
Отправлено: 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:


Название: Re: Модель QSqlQueryModel для QComboBox!
Отправлено: WW от Август 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:


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: linuxoid от Август 17, 2007, 08:36
:D  :lol:

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

 а как кодировку поменять для QString name???


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: SABROG от Август 17, 2007, 08:42
Хранение данных в базе сделай в кодировке UTF-8


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: linuxoid от Август 17, 2007, 09:11
да там и так стоит UTF-8!как сделать кодировку для QString name???Если менять при подключении к БД в QT кодировку ну там: QSqlQuery q   ;   q.exec(SET NAMES.........
то в таблице отображаются иероглифы!


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: VZ от Август 17, 2007, 10:04
Цитата: "linuxoid"
да там и так стоит UTF-8!как сделать кодировку для QString name???Если менять при подключении к БД в QT кодировку ну там: QSqlQuery q   ;   q.exec(SET NAMES.........
то в таблице отображаются иероглифы!


А какая СУБД?


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: linuxoid от Август 17, 2007, 10:12
всё спасибо я уже решил проблему!))
QTextCodec *codec = QTextCodec::codecForName("Utf8");
   QTextCodec::setCodecForCStrings(codec);
   QTextCodec::setCodecForLocale(codec);
может кому пригодится


Название: Модель QSqlQueryModel для QComboBox!
Отправлено: SABROG от Август 17, 2007, 10:43
А ты уверен, что тебе надо все и вся в Utf8 переводить ?

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

Код:

QString("select id_key_citie from citie where city_name ='%1'").arg(cbMy->currentText.toUtf8());