|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
База сервер под SUN (UNIX) 8.0.5, клиент 8.1.7 под NT4рус или win98рус, ч/з TCP/IP базу вижу, и через ODBC (Oracle ODBC Test), и Native (через Delphi 4 доступ с алиасом BDE), все перепробовал драйвера - не получается правильно читать строки на русском. Кстати, сам клиент Net8Assistant также говорит не по русски - может быть, тут проблема со шрифтом? В дельфи отображение точно идет фонтом, который правильно передает русские тексты - проверено. Если сделать перекодировку newCh = Chr(Ord(oldCh)+12 - русские буквы исправляются, а другие портятся... Где и что нужно настраивать/проверять? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2001, 17:19 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
Здесь для начала я бы проверил настройку клиента Oracle на предмет кодировки. Для этого из какой нибудь родной для Oracle %) оболочки (например SQL*Plus) надо выполнить запрос типа: select upper('абвгдЕЁЖЗ') from dual; должно выдать строку вида: UPPER('АБ --------- АБВГДЕЁЖЗ ...ежели вместо этого выдаётся что-либо другое, значит неверно настроены NLS параметры клиента Oracle: В Windows это делается в реестре раздел HKEY_LOCAL_MACHINE\Software\Oracle, параметр NLS_LANG. Для Wind'ов у меня стоит значение AMERICAN_AMERICA.CL8MSWIN1251 (но также можно AMERICAN_CIS.CL8MSWIN1251 или RUSSIAN_CIS.CL8MSWIN1251 и тд, лишь бы CHARSET был CL8MSWIN1251). Если это WinNT то NLS_LANG там возможно задается также в виде переменной окружения, там его тоже надо поменять. А вообще-то надо еще посмотреть CHARSET базы данных: select * from sys.nls_database_parameters; PARAMETER VALUE ------------------------------ ------------------------------ ... NLS_CHARACTERSET CL8MSWIN1251 ... и уже от этого плясать. %) А насчет BDE у меня для алиаса указан LANGDRIVER "Pdox ANSI Cyrillic" и всё ОК. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2001, 13:47 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
После поиска в реестре (NT4рус SP6A) в двух местах исправил NLS_LANG с NA на AMERICAN_AMERICA.CL8MSWIN1251 или RUSSIAN_CIS.CL8MSWIN1251 в результате оболочка SQL+ заработала по-английски, а раньше говорила по китайски (в смысле - по русски, но нечитаемо). Net8 Assistant, тем не менее, так и говорит по китайски. С базой результат тот-же - русские буквы не читаются. (в том числе и с SQL* Plus, и из Delphi c Oracle Direct Access components) Выполнил рекомендованные запросы - ниже результат. Вопрос - что можно сделать, не повредив работоспособности самой базы, но чтобы можно было правильно читать поля с русскими данными. (сама работающая программа, на удивление, совершенно нормально работает с русскими данными, и рисковать ее неработоспособностью я не могу, так же как и не имею возможности изменять ее, ни исходные тексты, ни даже исполнимые модули) Можно (и безопасно ли) просто поменять CHARACTERSET, и на что? SQL> select * from sys.nls_database_parameters; PARAMETER VALUE ------------------------------ ------------------------------ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-YY NLS_DATE_LANGUAGE AMERICAN NLS_CHARACTERSET US7ASCII NLS_SORT BINARY NLS_NCHAR_CHARACTERSET US7ASCII PARAMETER VALUE ------------------------------ ------------------------------ NLS_RDBMS_VERSION 8.0.5.0.0 12 rows selected. SQL> select upper('уцйжлд ghfhg') from dual; UPPER('????? ------------ ?????? GHFHG SQL> ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2001, 12:45 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
беда в кодировке самой базы. Нужна кодировка с кирилицей, например CL8ISO8859P5. Но сложность в том, что Oracle не рекомендует менять кодировку существующей БД, рекомендуется пересоздать БД. Правда в старых номерах Oracle Magazine была статья, где рассказывалось как можно пломенять кодировку, но результат не гарантировался ((. Если интересно, могу дать ссылку на номер, но только в понедельник... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2001, 08:49 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
беда в кодировке самой базы. Нужна кодировка с кирилицей, например CL8ISO8859P5. Но сложность в том, что Oracle не рекомендует менять кодировку существующей БД, рекомендуется пересоздать БД. Правда в старых номерах Oracle Magazine была статья, где рассказывалось как можно пломенять кодировку, но результат не гарантировался ((. Если интересно, могу дать ссылку на номер, но только в понедельник... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2001, 08:50 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
беда в кодировке самой базы. Нужна кодировка с кирилицей, например CL8ISO8859P5. Но сложность в том, что Oracle не рекомендует менять кодировку существующей БД, рекомендуется пересоздать БД. Правда в старых номерах Oracle Magazine была статья, где рассказывалось как можно пломенять кодировку, но результат не гарантировался ((. Если интересно, могу дать ссылку на номер, но только в понедельник... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2001, 08:50 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
Я сталкивался с этим. Переменная NLS_LANG в NT задается как Russian_.CL8MSWIN1251. Тогда работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2001, 10:15 |
|
русские данные никаким LANGDRIVERом не достаются
|
|||
---|---|---|---|
#18+
А как это: "...(сама работающая программа, на удивление, совершенно нормально работает с русскими данными, и рисковать ее неработоспособностью я не могу, так же как и не имею возможности изменять ее, ни исходные тексты, ни даже исполнимые модули)" То есть где-то ты эти данные все-таки видишь по-русски или нет? Ну и CHARSET у базы стоит не русский, как уже выше сказали. Надо пересоздавать базу с правильным CHARSET'ом %) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2001, 08:35 |
|
|
start [/forum/topic.php?fid=52&msg=32008119&tid=1993585]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 373ms |
0 / 0 |