Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка записей по текстовому полю в кириллице [D6, Paradox]


Страницы:   1 2

ВованХ ©   (2008-12-23 17:16:00) 

Для paradox-таблицы при использовании BDE глючит сортировка/ индексация по текстовому полю, в котором находятся русские буквы. Например, несколько записей начинается на "С", потом на "Т", потом - снова на "С" :(
Как это можно побороть?


Германн   (2008-12-24 13:16:00) [1]


> ВованХ   (24.12.08 12:18) [23]
>
> Уважаемые, может кто подскажет, как на BDE программно переключить
> langdriver? Например, на Pdox ANSI Cyrillic.
>

TDatabase.Params
Use Params to examine or specify database connection parameters, such as path name, server name, schema-caching size, language driver,...


ВованХ   (2008-12-24 12:18:00) [2]

Уважаемые, может кто подскажет, как на BDE программно переключить langdriver? Например, на Pdox ANSI Cyrillic.


ВованХ   (2008-12-24 11:08:00) [3]

На Pdox ANSI Cyrillic тоже правильно работает. И ведь тоже "от балды" :)


Германн   (2008-12-24 01:51:00) [4]


> Anatoly Podgoretsky ©   (23.12.08 20:07) [20]
>
> > ВованХ  (23.12.2008 18:54:18)  [18]
>
> И зачем ДОС кодировка?
>

Имхо, "от балды".  Первый раз попробовал и всё получилось.
Дальнейший (возможный) геморрой - на его совести.


Anatoly Podgoretsky   (2008-12-23 20:07:00) [5]

> ВованХ  (23.12.2008 18:54:18)  [18]

И зачем ДОС кодировка?


Медвежонок Пятачок   (2008-12-23 19:03:00) [6]

компьютер железный, пусть переливает.


ВованХ   (2008-12-23 18:54:00) [7]

Всем спасибо !!!

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

Теперь другая проблема: данных много, нужно все переливать...


Anatoly Podgoretsky   (2008-12-23 18:46:00) [8]

Может не надо? Раз такой случай, то может перейти на другую СУБД?


ВованХ   (2008-12-23 18:44:00) [9]

Медвежонок Пятачок ©

Anatoly Podgoretsky ©

спасибо, ща попробую


ВованХ   (2008-12-23 18:43:00) [10]

2 Anatoly Podgoretsky ©

...и даже если поменять langdriver на Paradox Cyrr 866 - тоже не помогает


Anatoly Podgoretsky   (2008-12-23 18:42:00) [11]

> ВованХ  (23.12.2008 18:40:11)  [11]

Как драйвер может отсортировать неизвестные символы.


Anatoly Podgoretsky   (2008-12-23 18:41:00) [12]

> ВованХ  (23.12.2008 18:38:09)  [9]

Замена не поможет, надо создавать новую таблицу.


Медвежонок Пятачок   (2008-12-23 18:41:00) [13]

При изменении langdriver на Pdox ANSI Cyrillic для PARADOX в BDE - тоже не помогает :(

Ну так поздно пить боржом. С самого начала должен был быть этот драйвер


ВованХ   (2008-12-23 18:40:00) [14]

Вообще неправильно сортируется по многим буквам. Например, "Б" встречается после "Д" - здесь тяжело заподозрить юзера в том, что он набрал латинское С, М или Т.


Anatoly Podgoretsky   (2008-12-23 18:39:00) [15]

'WEurope' никак не похоже на Русский
Посдказка 'WEurope' означает Западная Европа!


ВованХ   (2008-12-23 18:38:00) [16]

2 Медвежонок Пятачок ©

> langdriver - 'ancyrr'

При изменении langdriver на Pdox ANSI Cyrillic для PARADOX в BDE - тоже не помогает :(


Медвежонок Пятачок   (2008-12-23 18:26:00) [17]

langdriver - 'WEurope' ANSI

langdriver - 'ancyrr'


ВованХ   (2008-12-23 18:24:00) [18]

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


sniknik   (2008-12-23 18:13:00) [19]

или выполни запрос
SELECT * FROM aaa WHERE Name LIKE '%C%'
(опять же скопированный отсюда), выдал он что нибудь?


sniknik   (2008-12-23 18:10:00) [20]

если
> "C", потом на "T", потом - снова на "С" :(
то это правильно, возьми для примера скопируй (только именно скопируй) буквы из моего поста (те что в кавычках), и вставь в первые символы значений своей таблицы. посмотри на сортировку.

просто есть подозрение, что там находятся не только
> русские буквы.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо