Visual Fox Pro 9 & Oracle 10 Express

  • Автор темы Автор темы bboyViT
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
B

bboyViT

Есть проект. База в Оракле, клиентская часть пишется на Фоксе столкнулся с такой проблемой. Вносим в удаленное представление запись, все нормально, при закрытии формы фокса пишет изменения в Оракле и вместо руских букв получается ерунда, кодировка выставлена и в Оракле и в реестре для оракла и клиента AL32UTF8. Что делать уже не знаю
 
Попробуйте "в реестре" выставить NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 (или AMERICAN_CIS.CL8MSWIN1251).

Это позволит серверу Oracle правильно перекодировать информацию между клиентом и сервером, так как вряд-ли фокспро передает клиентской части Oracle строки в кодировке AL32UTF8.
 
NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 Это стоит в реестре по умолчанию и фокса не работает с такой кодировкой, там размеры типов не совпадают и касяки прут типа он говорит вы много символов ввели, хотя это не так
 
Во-первых, те строки, что уже в БД - запорчены и никак не смогут выглядеть нормально, придется их удалить или апдейтить!!! Правильность установки кодировок на них пробовать нельзя!

Во-вторых, эта фраза из первого поста:

кодировка выставлена и в Оракле и в реестре для оракла и клиента AL32UTF8

для меня означает, что на клиенте стоит AL32UTF8. Теперь вы пишете, что в реестре стоит NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251...
Значит берите ветку реестра HKLM\Software\Oracle, там есть несколько мест, где прописан ключ NLS_LANG, проверьте все. В крайнем случае можно задать переменную окружения NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251, тогда реестр игнорируется. Убейте все записи с текстом на "албанском". Перегрузитесь. Попробуйте вставку-чтение текстовых значений. Это легко проверить, если создать алиас ODBC на оракловскую базу и попытаться посмотреть на его таблицы через Access (еще легче это проверить с помощью sqlplus).
Так же попробуйте поменять кодировку клиента на AL32UTF8 ;), если не получится...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab