Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2012, 13:43   #1
serg36
 
Регистрация: 19.02.2012
Сообщений: 6
По умолчанию Проблема с сортировкой по кириллице в ClientDataSet из-за Windows 7

Знатоки, подскажите!

Задаю сортировку по алфавиту в ClientDataSet:

IndexFieldNames := 'Letter';

Когда в поле Letter латиница или цифры, на экран в гриде выводится отсортированным по возрастанию.
Когда в поле Letter кириллица - при вводе букв по порядку сортирует с завидным постоянством
Ч-Б-А-В-Д-Г-Е-Ж-З-Р-Й-И-К-Л-Н-М-О-П-С-У-Т-Ф-Ц-Х-Ш-Я-Ю-Ъ-Щ-Ы-Ь-Э
Проверял много раз - эффект стабилен.

Этот эффект наблюдается на компьютере 1 с Windows 7 SP1 + Delphi XE2.
Тот же самый проект на компьютере 2 с Windows XP SP3 + Delphi XE2 ведет себя нормально, сортировка правильная.

Более того. Откомпилированный на "неправильном" компьютере 1 проект на компьютере 2 сортирует верно и наоборот: откомпилированный на "правильном" компьютере 2 проект на компьютере 1 сортирует неправильно.

Последний эксперимент. Проверяю откомпилированные проекты на компьютере 3 с Windows 7 SP1 без Делфи. Сортировка нарушена в обоих проектах.
Проверяю на компьютере 4 с Windows XP SP3 - все нормально.

Получается, здесь проблема c Windows 7! Сортировка нарушается именно под ней.

Подскажите, в чем может быть дело, как починить?
serg36 вне форума Ответить с цитированием
Старый 19.02.2012, 15:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сортировка нарушается именно под ней.
Ага. И глобальное потепление тоже из-за Севена.
И вампиры с вурдалаками это дети Билли.
А ты не подумал что во-первых локаль базы не настроена должным образом, а во-вторых ты должным образом к базе не подключаешся?
Например (это чтоб не быть голословным) такая проблема может существовать в Firebird, если при подключении явно не указать WIN1251 как локаль базы. И дело тут не в Семерке, на ХРюшке тоже можно подхватить такое, если ХРюшка не переключена на русскую локаль.
Короче: Тут много "но", и самое последнее из них относится к винде, уж поверь мне я как раз с таким часто сталкивался по роду работы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2012, 17:10   #3
serg36
 
Регистрация: 19.02.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
...И дело тут не в Семерке, на ХРюшке тоже можно подхватить такое, если ХРюшка не переключена на русскую локаль.
Короче: Тут много "но", и самое последнее из них относится к винде, уж поверь мне я как раз с таким часто сталкивался по роду работы.
Я столкнулся впервые, и меня это шокировало. Прикладываю тестовый микропроект.

Тест занятный - щелкаем по кнопкам и в семерке видим патологию сортировки, а в ХР - все нормально.

Если знаете, как - поправьте, чтобы заработало. Там всего-то десяток строчек - чего не хватает?

Цитата:
Сообщение от Stilet Посмотреть сообщение
... я как раз с таким часто сталкивался по роду работы.
Попробовал поискать настройки локали. У меня-то и базы как таковой нет - MyBase на xml файлах, и никаких настроек не нашел.

Подскажите, если знаете! Пример в предыдущем посте.
Вложения
Тип файла: rar Sort Win 7.rar (87.9 Кб, 9 просмотров)

Последний раз редактировалось Stilet; 20.02.2012 в 20:15.
serg36 вне форума Ответить с цитированием
Старый 21.02.2012, 21:34   #4
serg36
 
Регистрация: 19.02.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ага. И глобальное потепление тоже из-за Севена.
И вампиры с вурдалаками это дети Билли.
И назачем было так кричать. Разобрался сам. А Севен и Билли тут были очень даже при чем.

Знаете, в чем дело - дайте совет. Не знаете - лучше ничего не пишите.
serg36 вне форума Ответить с цитированием
Старый 21.02.2012, 21:44   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну и в чем же дело было?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.02.2012, 23:55   #6
serg36
 
Регистрация: 19.02.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну и в чем же дело было?
ClientDataSet у меня берет данные из xml файла. Прописал в этом файле "LCID=1049" - и все заработало правильно.

Получается, что под ХР этот параметр игнорируется, а в семерке - нет.
serg36 вне форума Ответить с цитированием
Старый 22.02.2012, 00:11   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

значит ошибка ваша, ХР вам простила, семерка нет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2012, 00:26   #8
serg36
 
Регистрация: 19.02.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
значит ошибка ваша, ХР вам простила, семерка нет.
Согласен, ошибка моя. Но я как раз и просил совета у местных профессионалов - и никто не помог. Кроме распальцовки я ничего не увидел. Повторяю - не знаете, как помочь - лучше не пишите.
serg36 вне форума Ответить с цитированием
Старый 22.02.2012, 05:11   #9
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от serg36 Посмотреть сообщение
Согласен, ошибка моя. Но я как раз и просил совета у местных профессионалов - и никто не помог. Кроме распальцовки я ничего не увидел. Повторяю - не знаете, как помочь - лучше не пишите.
Вообще то Stilet в 1 посте вам и сказал искать проблему в локали
Локаль
vovk вне форума Ответить с цитированием
Старый 22.02.2012, 08:59   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ХР вам простила
Да, в хрюшке не такой упор на локаль делали...
Цитата:
Кроме распальцовки я ничего не увидел.
Зря ты так, сам же начал с места в карьер )
Винда то действительно не при чем. Я твой пример проверил - на одной машине без четкого указания локали все ок, на другой твой эффект, но только потому что на первой изначально был не совсем стандартный XML драйвер.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОБЛЕМА С СОРТИРОВКОЙ S@n4eeeeez Помощь студентам 4 19.01.2012 21:28
Проблема с добавлением записей (сервер приложений + clientdataset) Hayaname БД в Delphi 5 24.10.2011 20:41
Проблема с сортировкой matbe14 Помощь студентам 0 29.09.2011 11:16
проблема при записывании данных из ClientDataSet в ADOQuery Zloi[DED] БД в Delphi 2 02.09.2011 08:33
Проблема с сортировкой Anubys Помощь студентам 0 19.04.2011 17:10