|
![]() |
#1 |
Участник
|
Если исходить из предположения, что это связано с collate, то порядок, приведенный в начале темы соответствует collate с названием Cyrillic_General_CI_AS.
У нас на сервере настроена collate SQL_Latin1_General_CP1251_CI_AS, что дает "правильный" порядок сортировки на самом сервере Значит, Axapta использует сортировку Windows (опять же, если предположение соответствует действительности). Может, кто в курсе как это проверить? И есть ли соответствующие настройки Axapta? |
|
![]() |
#2 |
Участник
|
При чем тут collate и вообще сервер базы данных если речь идет о map ?
Наверное, намерено никто ничего "не портил", просто как то повлиял переход платформы на поддержку unicode. Кстати что то подобное касается и временных таблиц : сортировка в них (для Ax2009) отличается от той, что была в Ax 3.0. Видимо, причина та же что и с map. |
|
![]() |
#3 |
Участник
|
Цитата:
Цитата:
Сообщение от Владимир Максимов
![]() X++: static void Job_Test(Args _args) { void comp(str _str1, str _str2) { if (_str1 > _str2) { info(_str1 + ' больше ' + _str2); } if (_str1 < _str2) { info(_str1 + ' меньше ' + _str2); } if (_str1 == _str2) { info(_str1 + ' равно ' + _str2); } } ; comp('1','-1'); comp('2','-1'); comp('10','-1'); comp('10','-2'); comp('20','-1'); comp('20','-2'); comp('20','-3'); } Может быть есть смысл в логику его сортировки добавить количество символов в строке?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 13.09.2011 в 20:03. |
|
![]() |
#4 |
Участник
|
В данном случае Map - это частный случай сравнения (упорядочивания) символьных строк. Проблема касается ЛЮБЫХ вариантов сравнения символьных данных в Ax2009. Любым способом и в любом месте.
Посмотрите мой пример. Там нет никаких объектов. Банальное "в лоб" сравнение символьных строк вида (str1 > str2). Тем не менее, наблюдается та же проблема. При этом тот порядок сортировки (правила сравнения на больше/меньше), который в результате получается, идеально совпадает с тем порядком сортировки, который получается при collate с именем Cyrillic_General_CI_AS |
|
![]() |
#5 |
Участник
|
Цитата:
(спасибо за пример) Как победить?А если многие алгоритмы зависят от правильной сортировки?Менять тире на какой-нибудь хитрый символ(типа ###)? Эх, считаю , что это баг!
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 13.09.2011 в 20:44. |
|
Теги |
ax2009, map, set, сортировка |
|
|