WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  UNIX UNICODE ORACLE PRO*C++

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   UNIX UNICODE ORACLE PRO*C++
the_moon опубликован 15-03-2001 07:34 MSK   Click Here to See the Profile for the_moon   Click Here to Email the_moon  
Привет всем,

дали мне вот задание пол униксом на Си++ прочитать юникод и представить его как хекс(HEX) и распесатать, а я даже не могу представить как это зделать.

Так вот вопрос 1
Как хранится уникод в базе оракла, я так понял по обрывчатым свееденьям, что несколько байт на символ, тогда сразу другой вопрос как прочитать его из базы спомощью ПРО С прекомпайлера, ОК я загнал его в varchar но как определить сколько байт на char приходится, вроде как в документах написано что переменная_varchar.len кранит не количество байт а количество chars, но там говорится также, что индикатор должен содержать оригинальную длинну в байтах, а уменя падла ноль там, все вроде зделал как надо а не получается, перкомпайлеру сказал что эта переменная с результатом есть NLS_CHAR толи он глухой толи я что недаделал, если всего два байта на char, тогда нет проблем, вообщето есть, как хранится юникод в оракле я тоже незнаю, старший байт в переди или младший, и как я всетааки определю что это юникод а не простая строчка, беда, горю

Если кто поможет, буду премного блогодарен.

Жора

lamo опубликован 15-03-2001 15:22 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
кинь сырц просевый и plsql структуры
возвращаемых данных (т.е. out параметры
процедуры или что там у тебя).
the_moon опубликован 15-03-2001 20:47 MSK     Click Here to See the Profile for the_moon  Click Here to Email the_moon     
Спасибо конечно а причем тут PL SQL.
Да и разобрался я вроде бы, не хранит похоже оракл юникод в варчаре2, а только один байт на символ, а потом драйвера преобразубт (некоторые) его в юникод вообщем подтосовкой занимаются, а под юниксом, я скомпилировал программу так что переменная varchar должна принимать юникод, а там то его как раз и небыло пришлось мап файл брать и вручную преобразовывать получаемые байты в юникод, все просто вообщем оказалось.

Извините за беспокойство

и спасибо

lamo опубликован 16-03-2001 04:01 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
как причем. посмотреть что у тебя за типы
на выходе.
почему в varchar2 только 1 байт ?
почитай National Language Support (NLS) в документации.
the_moon опубликован 16-03-2001 07:53 MSK     Click Here to See the Profile for the_moon  Click Here to Email the_moon     
Читал, ну так не помогло, там вообще немного написанно, за эту неделю я весь интернет перелазил, а может и не там ходил. Вообщем одной программой, через jdbc была записанна строчка на арабском в базу данных, и был обещан UNICODE тоесть 2 байта на значок и потом когда на тойже яве читали то так и получалось, как бы на клиентской стороне получалось два байта, а вот когда я под Юнихом стал читать туже строчку, то хренас два, моя varchar готова принимать а вот принимается один байт на символ, хотя в varchar_var.len стояло половина принятых байт. Такие вот дел, то есть jdbc драйвер сам преобразует в юникод (2 байта) а драйвер оракла, нехотит, может он как и настраиваеся для такой ерунды, но я не администратор, и разбиратся не хочу, я так подозреваю что на сервере может только nvarchar хранить два байта.

Но спасибо всеравно

lamo опубликован 16-03-2001 11:07 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
да вроде jdbc тут нипричем.
мыл ушел.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.