Конференция "Базы" » Сортировка записей по текстовому полю в кириллице [D6, Paradox]
 
  • ВованХ (23.12.08 17:16) [0]
    Для paradox-таблицы при использовании BDE глючит сортировка/ индексация по текстовому полю, в котором находятся русские буквы. Например, несколько записей начинается на "С", потом на "Т", потом - снова на "С" :(
    Как это можно побороть?
  • Правильный$Вася (23.12.08 17:18) [1]
    "ч" и "я" действительно глючат
    остальные - вряд ли
  • Виталий Панасенко (23.12.08 17:39) [2]
    указать правильную кодовую страницу при создании таблицы
  • Правильный$Вася (23.12.08 17:53) [3]
    и потом именно ее же - при подключении
  • Anatoly Podgoretsky © (23.12.08 17:57) [4]
    > ВованХ  (23.12.2008 17:16:00)  [0]

    Надо переиндексировать
  • sniknik © (23.12.08 18:10) [5]
    если
    > "C", потом на "T", потом - снова на "С" :(
    то это правильно, возьми для примера скопируй (только именно скопируй) буквы из моего поста (те что в кавычках), и вставь в первые символы значений своей таблицы. посмотри на сортировку.

    просто есть подозрение, что там находятся не только
    > русские буквы.
  • sniknik © (23.12.08 18:13) [6]
    или выполни запрос
    SELECT * FROM aaa WHERE Name LIKE '%C%'
    (опять же скопированный отсюда), выдал он что нибудь?
  • ВованХ (23.12.08 18:24) [7]
    2 Виталий Панасенко

    > указать правильную кодовую страницу при создании таблицы

    Таблица создавалась в Database Desktop. В BDE:
    default driver - PARADOX
    langdriver - 'WEurope' ANSI

    Где там можно указать кодовую страницу?
    =================================
    2 Anatoly Podgoretsky ©

    Насчет индексации - ведь таблица индексируется не по текстовому полю, а по integer или autoincrement.
    =================================
    2 sniknik ©

    Насчет SELECT по LIKE '%C%' - выдает все те записи на "С", которые в runtime выдаются не по порядку. Т.е., это действительно русские буквы, я уже не раз с таким сталкивался, но вот сейчас выполнение именно по порядку критично... :(
    Запрос в проге оччень простой:

    SELECT * FROM nTable
    ORDER BY NameX
  • Медвежонок Пятачок © (23.12.08 18:26) [8]
    langdriver - 'WEurope' ANSI

    langdriver - 'ancyrr'
  • ВованХ (23.12.08 18:38) [9]
    2 Медвежонок Пятачок ©

    > langdriver - 'ancyrr'

    При изменении langdriver на Pdox ANSI Cyrillic для PARADOX в BDE - тоже не помогает :(
  • Anatoly Podgoretsky © (23.12.08 18:39) [10]
    'WEurope' никак не похоже на Русский
    Посдказка 'WEurope' означает Западная Европа!
  • ВованХ (23.12.08 18:40) [11]
    Вообще неправильно сортируется по многим буквам. Например, "Б" встречается после "Д" - здесь тяжело заподозрить юзера в том, что он набрал латинское С, М или Т.
  • Медвежонок Пятачок © (23.12.08 18:41) [12]
    При изменении langdriver на Pdox ANSI Cyrillic для PARADOX в BDE - тоже не помогает :(

    Ну так поздно пить боржом. С самого начала должен был быть этот драйвер
  • Anatoly Podgoretsky © (23.12.08 18:41) [13]
    > ВованХ  (23.12.2008 18:38:09)  [9]

    Замена не поможет, надо создавать новую таблицу.
  • Anatoly Podgoretsky © (23.12.08 18:42) [14]
    > ВованХ  (23.12.2008 18:40:11)  [11]

    Как драйвер может отсортировать неизвестные символы.
  • ВованХ (23.12.08 18:43) [15]
    2 Anatoly Podgoretsky ©

    ...и даже если поменять langdriver на Paradox Cyrr 866 - тоже не помогает
  • ВованХ (23.12.08 18:44) [16]
    Медвежонок Пятачок ©

    Anatoly Podgoretsky ©

    спасибо, ща попробую
  • Anatoly Podgoretsky © (23.12.08 18:46) [17]
    Может не надо? Раз такой случай, то может перейти на другую СУБД?
  • ВованХ (23.12.08 18:54) [18]
    Всем спасибо !!!

    Если langdriver = Paradox Cyrr 866
    и при этом создается новая таблица, то в ней все работает правильно.

    Теперь другая проблема: данных много, нужно все переливать...
  • Медвежонок Пятачок © (23.12.08 19:03) [19]
    компьютер железный, пусть переливает.
 
Конференция "Базы" » Сортировка записей по текстовому полю в кириллице [D6, Paradox]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]