13.07.2004, 17:42 | #1 |
Участник
|
Всем привет!
Есть следующая проблема: имеется две абсолютно идентичные БД - одна native, другая - SQL. В native группировка в фин. отчете 110000..230000 отрабатывает нормально. В SQL же - некорректно. Однако если в SQL заменить интервал на набор '|', то все начинает работать нормально. Может кто-нибудь сталкивался с этим? |
|
13.07.2004, 17:48 | #2 |
Участник
|
а версия какая?
|
|
13.07.2004, 17:49 | #3 |
Участник
|
3.60
|
|
13.07.2004, 18:15 | #4 |
Moderator
|
Судя по всему, это связано с неправильной сортировкой по текстовому полю. При создании базы на SQL сервере, возможно была выбрана неправильная кодовая страница.
Эта проблема описывается в документации по миграции на SQL сервер и создании/администрировании базы на нем. |
|
13.07.2004, 18:43 | #5 |
Участник
|
Попробовал поднять базу на SQL с другим типом сопоставления - не помогло.
|
|
14.07.2004, 10:06 | #6 |
Moderator
|
В документе по Апгрейду для версии 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 |
Участник
|
Всем спасибо!
Проблема решилась. |
|
15.07.2004, 10:24 | #8 |
Moderator
|
Цитата:
Сообщение от Adios
Всем спасибо!
Проблема решилась. |
|
15.07.2004, 10:36 | #9 |
Участник
|
Как выяснилось, SQL выравнивает поля типа Code по левому краю. Соответственно строки 2000, 20000, и т. д. попадают в диапазон 110000..230000. Выход - все строки должны иметь одинаковую длину (002000, 020000, и. т. д.)
|
|
15.07.2004, 10:57 | #10 |
Moderator
|
Даааааа, засада.....
Ну этого следовало ожидать, т.к. Навижин сортирует кодовые поля как числа при числовом значении и как текст при смешанном. А SQL сортирует VARCHAR всегда как текст. |
|