![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Юникоды и компонент TOracleQuery [D5]
Orxan © (2006-08-29 09:35:00)Мастера помогите пожалуйста с проблемкой.
БД- оракл 10g, делфи 5, компоненты TntUnicodeControls_2_1_11 и doa.
Данные в таблице содержатся в юникодах. Селектирую из таблицы. понимаю, что
TntEdit1.Text:=Q.FieldasString('А');
уже не юникод. и выводится знак вопроса в не стандартных символах.
при написании
TntEdit1.Text:=Q.Field('А');
уже выводится непонятный символ вместо "?".
помогите пожалуйста разрешить проблемку, может ктото встречался.
Спосибо.
Orxan (2006-08-30 13:11:00) [1]ANB © (30.08.06 09:19) [47]
а мне не русские то буквы нужны. их я без проблем вижу.
Значит просмотрел кодировку каждого символа, который не нормально показывался. Оказалось, что при написании вручную этих символов в TNT цифровой эквивалент отличается от эквивалента, которого я получаю из таблицы. Всего таких символов 8. пришлось написат процедурку, которая заменяет иероглифы на нормальные буквы при выводе в TNT. вроде заработало.
Разницы никакой при использовании адо оли доа компонентов.
Спосибо всем, кто пытался помочь.
ANB (2006-08-30 12:55:00) [2]Задача вообщето решается настройкой сессии. В одаке это можно прямо в компоненте TOraSession вроде как все сделать (сам не пользовался, но что то подобное видел). В противном случае клиент будет пытаться сам преобразовывать юникод в строку и обратно.
Для проверки того, что легло в поле, удобно использовать функцию dump.
Кстати, про турецкий язык ничего не увидел :(
Val (2006-08-30 11:50:00) [3]>[47] ANB © (30.08.06 09:19)
вроде автор упорно хочет увидеть турецкие буквы, а вы ему русскую локаль настраиваете...зачем?
ANB (2006-08-30 09:19:00) [4]
> AMERICAN_AMERICA.WE8ISO8859P9
Ну дык с такой кодировкой ты никогда русских букв не увидишь.
Anatoly Podgoretsky (2006-08-29 20:05:00) [5]sniknik © (29.08.06 17:21) [43]
Я использую TNT без проблем
Orxan (2006-08-29 18:43:00) [6]> ANB © (29.08.06 17:55) [44]
AMERICAN_AMERICA.WE8ISO8859P9
ANB (2006-08-29 17:55:00) [7]
> Orxan (29.08.06 17:20) [42]
Ща то какой NLS стоит ?
sniknik (2006-08-29 17:21:00) [8]да и кстати, я не в жабе пробовал... и не с ораклом, а в своей тестовой программе c базами акесс, mssql и вроде бы firebird (смутно, tnt стоял очень недолго, фактически, проверил, сразу получилось без проблем и тутже удалил чтобы случайно от него ничего в проекты рабочие не "подцепить", а проверял на всем что под руку попалось в тот момент)
Orxan (2006-08-29 17:20:00) [9]Anatoly Podgoretsky © (29.08.06 16:49) [37]
AMERICAN_AMERICA.WE8MSWIN1252 этим пробовал
sniknik (2006-08-29 17:14:00) [10]> А как по молдавски в тоаде набрать то ?
не знаю... я для проб искал любой "вражеский" сайт на ихних буквах, и копировал через буфер.
пример с сайта TNT приблизительно и отражает что у меня получалось
http://www.tntware.com/delphicontrols/images/UnicodeWindows.gif
(только естесвенно я эти "кракозябры" не подписывал - язык такойто..., достаточно было того, что то что в базу положил то и получил назад)
ANB (2006-08-29 17:13:00) [11]
> 'set S = N:P'
Не а. Так не жрет.
Anatoly Podgoretsky (2006-08-29 17:04:00) [12]ANB © (29.08.06 16:56) [38]
Короче - надо N писать перед константой, как это в параметр запихать - х.з., не помню.
Естесвенно, только это гарантирует правильность, а написать примерно так
'set S = N:P'
ANB (2006-08-29 16:56:00) [13]
> sniknik © (29.08.06 16:42) [34]
А как по молдавски в тоаде набрать то ?
> Anatoly Podgoretsky © (29.08.06 16:49) [36]
Попробовал на 1250 - коннект прошел, но ничего не сломалось.
Короче - надо N писать перед константой, как это в параметр запихать - х.з., не помню. Есть смысл сходить на SQL.RU и поспрошать тамошних знатоков.
Автор - проведи эксперимент по образцу и подобию. И запости результат.
Anatoly Podgoretsky (2006-08-29 16:49:00) [14]Orxan (29.08.06 16:44) [35]
Тебе доверия нет.
Anatoly Podgoretsky (2006-08-29 16:49:00) [15]ANB © (29.08.06 16:34) [33]
Ну тебе не повезло, а если бы смог, то Петю бы не увидел.
Orxan (2006-08-29 16:44:00) [16]на 1252 пробовал, тоже самое получилось
sniknik (2006-08-29 16:42:00) [17]> Жрет и васю и петю и показывает все по русски.
а теперь, на бис, то же самое для молдавского/грузинского/любого какой найдеш но не русского языка! (и не английского. знаем вас...)
;о))
ANB (2006-08-29 16:34:00) [18]попробовал - не могу законнектится :)
Anatoly Podgoretsky (2006-08-29 16:28:00) [19]Конечно в Юникоде, не не может запрос изменить тип поля.
Второй запрос гарантирует правильность, а вот первый нет, будет зависить от текущей локализации. Попробуй установи кодовую кодировку для клиента отличной от русской, например 1252 и повтори эксперимент.
ANB (2006-08-29 16:27:00) [20]Вру - эсперимент это я провел на 9.2. Запутался я с нашими серваками.