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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: ms access - как считать ячейки с русскими буквами ?  (Прочитано 4932 раз)
ole
Гость
« : Ноябрь 26, 2008, 11:54 »

под winXP пишу приложение соединяющееся с MS Access 2003 (.mdb) файлом.
Создаю QSqlQuery - строки на английском извлекаются нормально , а вместо строк на русском выдаются числа. 

Можно ли что-то сделать,  кроме как перевести все ячейки в БД  ?
Записан
spirit
Гость
« Ответ #1 : Ноябрь 26, 2008, 12:00 »

попробуйте задать кодек
Код
C++ (Qt)
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp-1251"));
 
Записан
ole
Гость
« Ответ #2 : Ноябрь 26, 2008, 12:36 »

спасибо, но не помогает...

+ пробовал

QString name = query.value(0).toString();
QTextCodec *codec = QTextCodec::codecForName("cp-1251");
QByteArrey encodedString = codec->fromUnicod(name);

cout << encodedString.constData() ;  + вывод в ComboBOx

Может ли сам QSqlQuery получать от ODBC драйвера ахинею, и тогда QT ничем не поможет или всетки дело в QT?
Записан
spirit
Гость
« Ответ #3 : Ноябрь 26, 2008, 12:39 »

попробуйте выполнить запрос в QTDIR/demos/sqlbrowser как там будут символы отображаться.
Записан
ole
Гость
« Ответ #4 : Ноябрь 26, 2008, 13:03 »

QT SQL Browser  также вместо русских строк показывает числа ( от 1 до 16  такое ощущение что  из всех строк взяты только  РАЗЛИЧНЫЕ строки на русском, пронумерованы и эти номера и выданы)

Записан
spirit
Гость
« Ответ #5 : Ноябрь 26, 2008, 13:04 »

тогда может дело в запросе?
Записан
ole
Гость
« Ответ #6 : Ноябрь 26, 2008, 13:37 »

Спасибо за помощь кажется я начинаю понимать...    теперь все должно получиться!

Чтобы закрыть тему и больше никого не вводить в заблуждение опишу ситуацию

в БД две таблицы States(Nomer, State) и companies(name,Sstate)   со связью по полю state .
(Столбец state содержит строки полностью на русском или английском.)

по запросу SELECT * FROM companies  в столбце State  в некоторых строках появляются значения  из столбца  Nomer однозначно соответствующего значению в столбце  state из таблицы states.

Вывод:  - написать более сложный запрос       
              - с отображением русского все впорядке 

Записан
spirit
Гость
« Ответ #7 : Ноябрь 26, 2008, 13:41 »

ну тут по идее можно объединением обойтись и все будет ок.  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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