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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT 3.3.4+Oracle 9i = кракозяблы???  (Прочитано 5543 раз)
Kostya
Гость
« : Сентябрь 16, 2005, 18:40 »

Собственно имею QT 3.3.4+Oracle. цепляюсь к 8-ой версии Oracle - все по-русски, а цепляюсь к Oracle 9.2.0 - кракозяблы. В кракозяблах четко просматривается UTF8 - вот только выводится он побайтно, а не так как надо. Есть идеи???
Записан
Kostya
Гость
« Ответ #1 : Сентябрь 17, 2005, 14:16 »

Проблема решена. Если кто хочет знать как - скажу.
Записан
L.Marvell
Гость
« Ответ #2 : Сентябрь 17, 2005, 16:05 »

Цитата: "Kostya"
Проблема решена. Если кто хочет знать как - скажу.

А чего бы сразу не рассказать?  Улыбающийся
Записан
Kostya
Гость
« Ответ #3 : Сентябрь 17, 2005, 18:15 »

Цитата: "L.Marvell"
Цитата: "Kostya"
Проблема решена. Если кто хочет знать как - скажу.

А чего бы сразу не рассказать?  Улыбающийся

А потому что мне никто не отвечал, я обиделся и сам проблему решил Грустный

Вообщем так: я нашел в инете такую же проблему у одного китайского товарища http://qtforum.org вот тут он жаловался пару месяцев назад, но ему не помогли.
После диагностики выяснилось что с QT4 Oracle работает почти хорошо, есть только проблема с показыванием числовых полей со значением > 2 знаков. Эта проблема тоже обсуждалась там же но ответа тоже не нашли. И так как мне QT4 не понравилась - я ее тоже не решал. Как работает QT 3.3.4 и Oracle:
Собираем Oracle client 8i+QT 3.3.4: соединяемся с Oracle 8i - driver()->hasFeature(Unicode) = false - все в порядке
Соединяемся с Oracle 9i driver()->hasFeature(Unicode) = true - UTF8 выводится побайтно=кракозяблы
Собираем Oracle client 9i+QT 3.3.4: соединяемся хоть с какой версией Oracle  = кракозяблы.
Пришлось лезть в исходники:
qt\3.3.4\src\sql\drivers\oci\qsql_oci.cpp line 40
// uncomment this if you have problems
// with oracle character sets
//#define QOCI_NO_CHARSET_CONVERSION
ну вот в принципе и все. После перекомпиляции - все заработало. все по-русски.
Записан
L.Marvell
Гость
« Ответ #4 : Сентябрь 22, 2005, 15:45 »

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


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