Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Юникоды и компонент TOracleQuery [D5]


Страницы:   1 2 3

Orxan ©   (2006-08-29 09:35:00) 

Мастера помогите пожалуйста с проблемкой.
БД- оракл 10g, делфи 5, компоненты TntUnicodeControls_2_1_11 и doa.

Данные в таблице содержатся в юникодах. Селектирую из таблицы. понимаю, что

     TntEdit1.Text:=Q.FieldasString('А');

уже не юникод. и выводится знак вопроса в не стандартных символах.
при написании

     TntEdit1.Text:=Q.Field('А');

уже выводится непонятный символ вместо "?".

помогите пожалуйста разрешить проблемку, может ктото встречался.

Спосибо.


ANB   (2006-08-29 16:26:00) [21]

Кстати, помнится 9-ка хотела явного указания N''. Без этого работать не хотела. Не помню, как я через параметры это запихал, но запихал.


ANB   (2006-08-29 16:25:00) [22]

Текс. Провел эксперимент на 8-ке.

create table Table1_T (ID number, S nvarchar2 (2000))

select dump(S) from Table1_T

select S from Table1_T

update Table1_T
set S = 'Вася'

update Table1_T
set S = N'Петя'

Жрет и васю и петю и показывает все по русски. Работал в тоаде. dump показывает, что строка лежит в юникоде.


Anatoly Podgoretsky   (2006-08-29 16:18:00) [23]

ANB ©   (29.08.06 16:16) [27]
Я не знаю Оракл, но думаю что это так, поскольку с других именно так и в разных по разному указывается, при том это относитстя не только к Юникоду, но особенно к ANSI


ANB   (2006-08-29 16:16:00) [24]

Текс. Насколько я помню, при работе с юникодом нужно ораклу явно указывать, что строка в юникоде. Что то в этом роде DOA обязан поддерживать.


Anatoly Podgoretsky   (2006-08-29 16:09:00) [25]

Orxan   (29.08.06 16:07) [24]
Не играет роли, роль играет только текущая локализация, при том для конкретного потока, возможно даже разные локализации в разных потоках, кроме того еще вмешивается и сервер, если ANSI поступает в него.


Anatoly Podgoretsky   (2006-08-29 16:07:00) [26]

ANB ©   (29.08.06 15:24) [21]
Конечно, конвертирование ANSI туда и обратно базируется на текущей локализации сторон. Если языков более двух, то вообще невозможно.


Orxan   (2006-08-29 16:07:00) [27]

не, винда английская стоит.
попытаюсь через адо опять сделать.


sniknik   (2006-08-29 15:29:00) [28]

> Критичен ли тут именно юникод на клиенте ?
да, критичен. т.к. 3 используемых языка насчитал (английский (всегда есть), русский (ну не на турецкой же винде разработка), турецкий (нужен))


Orxan   (2006-08-29 15:24:00) [29]

да есть готовая прога на жаве написана, без проблем работает. так что пересоздавать не получится.
да вот эта прога первая, и такая проблемка. да указывали  западно-европейскую кодировку, поэтомуто я прописывал AMERICAN_AMERICA.WE8MSWIN1252

спосибо за помощ.


ANB   (2006-08-29 15:24:00) [30]


> а ты уверен что он поддерживает юникод? я нет.

Я - тоже нет. Но одак прекрасно лопал ANSI, оракла сама конвертила в юникод и обратно. Критичен ли тут именно юникод на клиенте ?


ANB   (2006-08-29 15:22:00) [31]

Еще можешь вот так попробовать RUSSIAN_CIS.CL8MSWIN1251.

Кстати, проведи эксперимент - создай тестовую таблицу с varchar2 полем и поковыряй ее на предмет русских букв.


sniknik   (2006-08-29 15:21:00) [32]

> поменял на адо.  но опять же при присваивании значения этого поля в тнтедит показвает " ї "
а ї это уже не вопросы (ошибки преобразований) это уже юникод, только не установленная на машине страница похоже (тогдо оно приводит к максимально похожей, но...).

возми ту, что у тебя есть (разные сайты пооткрывай) но точно юникодовскую, и сначала запиши в базу, после прочитай, должно быть одно и тоже... если нет, значит неправильно сделал. когда получиш номальную строку на выход замени tnt компонент на стандартный (убедится что юникод, он опять вопросами станет)
если все работает (и пишеш и чатаеш) то можеш смело прогу куда хочеш отправлять у них будет также.

> ЗЫ. Не надо через ADO с ораклом работать при наличии хотя бы DOA.
а ты уверен что он поддерживает юникод? я нет.


ANB   (2006-08-29 15:17:00) [33]


> Orxan   (29.08.06 15:10) [17]

Значит сервак таки локализованный обычный и при создании БД/инстанса указали западно-европейскую кодировку. Базу пересоздавать надо. А еще кто-нибудь на этой базе работает без проблем ?


Orxan   (2006-08-29 15:10:00) [34]

воткнул везде  AMERICAN_AMERICA.CL8MSWIN1251
теперь знаки вопроса вышли


ANB   (2006-08-29 15:03:00) [35]

Для тех, кто в танке - третий раз. У тебя указана западноевропейская кодировка и, есно, ничего не работает. Я ж написал, что воткнуть : AMERICAN_AMERICA.CL8MSWIN1251.


Orxan   (2006-08-29 14:57:00) [36]

не локалка.
Я прогу не для себя пишу, и поэтому мне турецкие буквы нужны.
я прописал везде AMERICAN_AMERICA.WE8MSWIN1252 потому что этим чарсетом устанавливали оракл. но опять проблемка не разрешилась


ANB   (2006-08-29 14:34:00) [37]


> Orxan   (29.08.06 14:31) [13]

Тады все понятно. У тебя русский язык порубан был. Воткни везде то, что я написал и проверь, что получилось в тоаде.
Кстати, оракла то какая ? Надеюсь не локализованный XE ?


Orxan   (2006-08-29 14:31:00) [38]

в реестре только в одном месте у меня стоял
AMERICAN_AMERICA.WE8MSWIN1252
а в остальных местах N/A


ANB   (2006-08-29 14:23:00) [39]


> Sergey13 ©   (29.08.06 14:19) [11]

тоад сам понимает юникодные поля. Если в нем неправильно показывает, проблема либо с NLS_LANG на клиенте, либо кривая база.

Но не факт, что когда заработает тоад, заработает делфовая программа :)
Просто проблемы надо решать поэтапно.

Кстати, Oracle XE автоматом все русские буквы перекидывает в юникод. При этом с одаком проблем не возникало.


Sergey13   (2006-08-29 14:19:00) [40]

> [10] ANB ©   (29.08.06 14:13)

Похоже ему не это надо.

> [6] Orxan   (29.08.06 14:04)
Я не работал ни с юникодом ни с 10-кой, но на
http://www.sql.ru/forum/actualtopics.aspx?bid=3
поиск по "UNICODE" дает несколько страниц топиков.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо