AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2004, 17:42   #1  
Adios is offline
Adios
Участник
 
15 / 10 (1) +
Регистрация: 08.07.2004
Всем привет!

Есть следующая проблема:
имеется две абсолютно идентичные БД - одна native, другая - SQL.
В native группировка в фин. отчете 110000..230000 отрабатывает нормально.
В SQL же - некорректно. Однако если в SQL заменить интервал на набор '|', то все начинает работать нормально. Может кто-нибудь сталкивался с этим?
Старый 13.07.2004, 17:48   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а версия какая?
__________________
полезное на axForum, github, vk, coub.
Старый 13.07.2004, 17:49   #3  
Adios is offline
Adios
Участник
 
15 / 10 (1) +
Регистрация: 08.07.2004
3.60
Старый 13.07.2004, 18:15   #4  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Судя по всему, это связано с неправильной сортировкой по текстовому полю. При создании базы на SQL сервере, возможно была выбрана неправильная кодовая страница.
Эта проблема описывается в документации по миграции на SQL сервер и создании/администрировании базы на нем.
Старый 13.07.2004, 18:43   #5  
Adios is offline
Adios
Участник
 
15 / 10 (1) +
Регистрация: 08.07.2004
Попробовал поднять базу на SQL с другим типом сопоставления - не помогло.
Старый 14.07.2004, 10:06   #6  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
В документе по Апгрейду для версии 2.60, 3.70 (для 3.60 почему-то нет?) написано:

Codeunit 104015 also checks the code fields in your data. If your code
fields contain numeric values of varying lengths, it will list them for you. If
you sort by these fields the resulting sorting will be incorrect.
Furthermore, any filters using these fields and containing numeric ranges
will give unexpected results. One way of overcoming this sorting problem
is to represent these code fields as integers. This can be done if the code
fields only contain numbers and these numbers do not start with zeros.

Т.е. если кодовое поле содержит чисто цифровое значение, то результат сортировки на SQL будет "неожиданным", с чем Вы по всей видимости и столкнулись.
Старый 14.07.2004, 18:27   #7  
Adios is offline
Adios
Участник
 
15 / 10 (1) +
Регистрация: 08.07.2004
Всем спасибо!
Проблема решилась.
Старый 15.07.2004, 10:24   #8  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Цитата:
Сообщение от Adios
Всем спасибо!
Проблема решилась.
Интересно как? ;-)
Старый 15.07.2004, 10:36   #9  
Adios is offline
Adios
Участник
 
15 / 10 (1) +
Регистрация: 08.07.2004
Как выяснилось, SQL выравнивает поля типа Code по левому краю. Соответственно строки 2000, 20000, и т. д. попадают в диапазон 110000..230000. Выход - все строки должны иметь одинаковую длину (002000, 020000, и. т. д.)
Старый 15.07.2004, 10:57   #10  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Даааааа, засада.....
Ну этого следовало ожидать, т.к. Навижин сортирует кодовые поля как числа при числовом значении и как текст при смешанном. А SQL сортирует VARCHAR всегда как текст.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:55.