Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Кто сталкивался с такой ошибкой, помогите пожайлуста. Имеется класс: Class Other.TestPers Extends %Persistent { Property LastName As %String; } Данные класса: # LastName 1 Иванов 2 Петров 3 Козлов 4 Ңұрғалиев 5 Айдыңов При попытке сортировки по полю "LastName" возникает ошибка: ОШИБКА #5540: SQLCODE: -400 Сообщение: Unexpected error occurred: <NLS TABLE>%0ABk1+6^CacheSql9 Тект запроса: Select LastName From Other.TestPers Order By LastName Вопрос: почему при сортировке текствого поля, в котором имеются казахские символы возникает ошибка, как правильно добавить их в текущую локаль, с помощью утилиты cnls.exe? ТЕКУЩАЯ ЛОКАЛИЗАЦИЯ: Россия,Русский,Unicode - RUSW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 09:14 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
По идее, если есть и русские и казахские буквы, изначально кодировку базы нужно делать юникодовскую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 11:01 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
А, хотя RUSW юникодовская чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 11:05 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
может в вашем случае правильней было бы перейти на юникодную базу и совсем на юникод _________________________________ Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 11:13 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Кодировка базы в юникоде - RUSW, еще при создании базы мы выбрали юникод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 12:15 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Описание ошибки <NLS TABLE> В версии 5.0.21 Ваш пример работает и выводит: LastNameАйдыңовИвановКозловПетровҢұрғалиев Настройки локали rusw немного отличаются от Ваших: у Вас какая версия Caché, Вы меняли системную локаль rusw? Но даже с Вашими настройками локали у меня запрос работает. Работает ли у Вас такой запрос?: Код: plaintext LastNameupperlowerИвановИВАНОВивановПетровПЕТРОВпетровКозловКОЗЛОВкозловҢұрғалиевҢҰРҒАЛИЕВңұрғалиевАйдыңовАЙДЫҢОВайдыңов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 10:34 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
servit, Версия 5.2.3.710.0. Upper работает также как у вас. Не работает Order By по полю с казахскими буквами. Системную локаль - RUSW не меняли. Попробуйте Order By. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 12:13 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Поменяйте в Портале для БД CACHETEMP значение параметра "New Global Collation" с "Cyrillic1" на "Cache standard". Переподключитесь к Caché и снова выполните запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 14:23 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
servit, Спасибо большое! Мы исправляли порядок сортировки утилитой CNLS.EXE для всех баз (как мы думаем) и не меняли установку в портале (внутри конкретной базы). При установке на первое место Cache Standart и потом Cyrillic1 ошибка не появляется. Но сортировка получается не национальная а по "весу" кодов букв. Сначала английские, потом русские, потом казахские. А хотелось бы однотипные буквы иметь рядом (К и Қ и так далее). И главный тогда вопрос - если база уже была заполнена при одном состоянии настроек, то нужно ли что-то делать после изменения их на новые (не пострадают ли индексы) или могут "вылезти" ещё какие-то побочные эффекты ? Система работает в промышленной эксплуатации уже два года, данных много (ломать её нельзя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 15:01 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Но сортировка получается не национальная а по "весу" кодов букв. Сначала английские, потом русские, потом казахские. Если в поле LastName будут строки на двух, трёх, пяти, N языках, как будет производиться у Вас сортировка? Буква Б или её аналог какого языка будет на первом месте, на втором и так далее? ... А хотелось бы однотипные буквы иметь рядом (К и Қ и так далее). Тогда Вам придётся создавать свою национальную локаль с правилами присущими казахскому алфавиту. По аналогии с литовской локалью ltuw , которая появилась в Caché 2009.1. Детали по формату данных в локали лучше обсудить в техподдержке. И главный тогда вопрос - если база уже была заполнена при одном состоянии настроек, то нужно ли что-то делать после изменения их на новые (не пострадают ли индексы) или могут "вылезти" ещё какие-то побочные эффекты ? Система работает в промышленной эксплуатации уже два года, данных много (ломать её нельзя). Трудно сказать. Но всегда можно сделать экспорт/импорт данных с перестройкой индексов. Ещё Вам может пригодиться метод ##class(%Library.GlobalEdit).Create() . PS: как же у Вас эти два года работала сортировка или Вы её не использовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 17:13 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=59&tid=1558443]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 425ms |

| 0 / 0 |
