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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кирилица  (Прочитано 5837 раз)
bob
Гость
« : Январь 28, 2006, 14:22 »

Данная тема уже поднималась мною в форуме по Qt, но так и не получила конструктивного завершения.

Используются
Qt 4.1.0
MySQL 4.1
OS WindowsXP Professional SR2

БД таблица и поля типа varchar, создаются с инструкцией DEFAULT CHARACTER SET utf8
При запуске программы выполняю


Код:

QTextCodec *codec;
codec=QTextCodec::codecForName("utf8");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);


При соединении с БД

Код:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("mytest");
db.setUserName("root");
db.setPassword("57r80t10");
db.setHostName("localhost");

QSqlQuery query;
 query.exec("SET NAMES utf8");


Ввожу текстовое значение кирилическими символами (ни каких проблем с отображением символов нет) через поле ввода

Код:

query.prepare("INSERT INTO test(status) VALUES(:st)");
query.bindValue(":st", lineEdit->text());
query.exec();


После добавления, только что введенное в ТБД значение отображается через QTableView. Вот тут и проблема - текст отображается в виде знаков вопроса.
Идеи есть? :?:
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Январь 28, 2006, 23:40 »

Раскажи сначала у тебя в базе все правильно сидит?
Записан
bob
Гость
« Ответ #2 : Январь 29, 2006, 02:22 »

Цитата: "Admin"
Раскажи сначала у тебя в базе все правильно сидит?

Что именно должно быть правильно?
А ларчик просто открывался. Ошибка выделена красным цветом.
Вот то, что я выполнял:query.exec("SET NAMES utf8");[/i] и все кирилические символы отображались как знак вопроса.

Вот то, что нужно было выполнить:query.exec("SET NAMES utf8;");[/i]
Все, проблема ушла после того как был передан символ точка с запятой после инструкции "SET NAMES utf8".
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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