Russian Qt Forum

Qt => Базы данных => Тема начата: Kostya от Сентябрь 16, 2005, 18:40



Название: QT 3.3.4+Oracle 9i = кракозяблы???
Отправлено: Kostya от Сентябрь 16, 2005, 18:40
Собственно имею QT 3.3.4+Oracle. цепляюсь к 8-ой версии Oracle - все по-русски, а цепляюсь к Oracle 9.2.0 - кракозяблы. В кракозяблах четко просматривается UTF8 - вот только выводится он побайтно, а не так как надо. Есть идеи???


Название: QT 3.3.4+Oracle 9i = кракозяблы???
Отправлено: Kostya от Сентябрь 17, 2005, 14:16
Проблема решена. Если кто хочет знать как - скажу.


Название: QT 3.3.4+Oracle 9i = кракозяблы???
Отправлено: L.Marvell от Сентябрь 17, 2005, 16:05
Цитата: "Kostya"
Проблема решена. Если кто хочет знать как - скажу.

А чего бы сразу не рассказать?  :)


Название: QT 3.3.4+Oracle 9i = кракозяблы???
Отправлено: Kostya от Сентябрь 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
ну вот в принципе и все. После перекомпиляции - все заработало. все по-русски.


Название: QT 3.3.4+Oracle 9i = кракозяблы???
Отправлено: L.Marvell от Сентябрь 22, 2005, 15:45
Ну то что не ответили, это еще не значит, что не хотели. А если каждый начнет писать, что не знает, как решить твою проблему, то толку будет меньше, а вреда больше, чем если никто не ответил. У меня тоже так бывало, что не отвечали и ответ находил сам, но все же сам и отвечал на свой вопрос. Мало ли, может через месяц кто зайдет с той же проблемой, а тут уже готовый ответ есть, а не только вопрос.