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

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

Сортировка по букве Ё в BDE [Paradox]


Страницы:   1 2

Германн ©   (2006-11-08 00:48:00) 

Можно ли заставить BDE правильно сортировать строковые поля по букве ё (Ё)? Или знает ли кто в какой версии Дельфи BDE уже подружилась с русской буквой Ё? Про В2006 я уже знаю.


Anatoly Podgoretsky   (2006-11-09 14:21:00) [1]

> Германн  (09.11.2006 13:47:28)  [28]

> C 'ascii' ANSI работает. Проверил.

Это хорошая весть. Есть же еще проекты которые работают их можно перевести на 2006 или хотя бы поставить от него БДЕ. Это радует.


Германн   (2006-11-09 13:47:00) [2]


> Anatoly Podgoretsky ©   (09.11.06 11:24) [21]
>
> Кстати мне не ясно, с каким драйвером заработало, с ansi
> 'ascii заработало? А это самый важный языковой драйвер.
>

C 'ascii' ANSI работает. Проверил.


> ЮЮ ©   (09.11.06 10:44) [20]
>
> Смотря что понимать под "правильно" и, соответственноЮ неправильно.
>  Автор, собственно, не продемонстрировал проблему.
>
> Сначала 100 Федоровых идут от А до Я, а потом ещё сто Фёдоровых.
>
> (сейчас под D7 на ХР именно так)

Возможно уже в Д7 исправили. Но ещё в Д6 буква Ё была "старшей" и шла перед буквой А.


Anatoly Podgoretsky   (2006-11-09 13:11:00) [3]

> Виталий Панасенко  (09.11.2006 12:08:25)  [25]

C FireBird работать через БДЕ грех, кроме того там БДЕ является посредником.
Для десктопных баз данный драйвер должен обеспечивать работу в соотвествии с локализацией системы, что позволяет работать с заранее неизвестными для БДЕ языками, например с 1251 для xBase
Поэтому его роль чрезвычайна велика, но к сожалению он сделан чрезвычайно криво, по крайней мере для трех букв. Помоему Борланд только сделала вид, что это ANSI драйвер.


Anatoly Podgoretsky   (2006-11-09 13:08:00) [4]

> Виталий Панасенко  (09.11.2006 11:58:24)  [24]

Нету там такого понятия, есть поняте позиция в наборе, но это относится ко всем наследникам TDataset
У меня сейчас в эксплуатацие есть Absolute Database в нем четко видно как записи появляются в разных местах и это самая что ни наесть локальная СУБД, локальней некуда, при этом я в курсе как организовано дело в dBase в подробностях и как в Парадокс в частности.
Просто надо забыть про понятие позиция в таблице, заменить его понятием позиция в наборе данных.


Виталий Панасенко   (2006-11-09 12:08:00) [5]


> Anatoly Podgoretsky ©   (09.11.06 11:24) [21]


> Кстати мне не ясно, с каким драйвером заработало, с ansi
> 'ascii заработало? А это самый важный языковой драйвер

И, кстати, почему-то в БД FireBird указываем кодовую страницу WIN1251 для работы с кириллицей. Или NONE - важней ? И нужно использовать только её?
В MS SQL таже картина с кодировкой БД...


Виталий Панасенко   (2006-11-09 11:58:00) [6]


> Anatoly Podgoretsky ©   (09.11.06 11:27) [23]

Странно, я думал, что в локальных СУБД это актуально. Там есть понятие "текущая запись", "предыдущая"...Чего собственно нету в серверах сиквела(хотя, например в FireBird есть db_key - что-то типа аналога текущей строки(точнее, его номера(строки))) ...
На счет varchar - нету, есть CHARACTER(dBase)/ALPHANUMERIC(Paradox)... Но на локальном сиквеле это звучит так...
Начали флудить...:-)


Anatoly Podgoretsky   (2006-11-09 11:27:00) [7]

> Виталий Панасенко  (09.11.2006 10:24:19)  [19]

> хотя в самой таблице данные расположены произвольно

Откуда такое дикое предположение, что в таблице данные как то упорядочены? Ни одна теория не говорит ни о чем подобном, только обратное - не делайте никаких предположений об внутреннем хранение данных в базе.


Anatoly Podgoretsky   (2006-11-09 11:26:00) [8]

> Виталий Панасенко  (09.11.2006 10:24:19)  [19]

В Парадоксе и dBase нет varchar!!!


Anatoly Podgoretsky   (2006-11-09 11:24:00) [9]

Это понятие Accent insensitive - БДЕ такого не поддерживает, используется как есть, без вариантов. БДЕ очень старая технология, не развивается, максимум на что можно расчитывать так, это на редкое исправление программных недоработок.

Кстати мне не ясно, с каким драйвером заработало, с ansi 'ascii заработало? А это самый важный языковой драйвер.


ЮЮ   (2006-11-09 10:44:00) [10]

Смотря что понимать под "правильно" и, соответственноЮ неправильно. Автор, собственно, не продемонстрировал проблему.

Сначала 100 Федоровых идут от А до Я, а потом ещё сто Фёдоровых.
(сейчас под D7 на ХР именно так)
Или 200 Ф[е|ё]доровых идут от А до Я
(кажется так и было при D9 на W2K, но может и ошибаюся)


Виталий Панасенко   (2006-11-09 10:24:00) [11]

Кстати, у меня БДЕ от Д7 -  для таблицы
create table t2(
id autoinc,
v varchar(255)
)
запрос вида select upper(v)/lower(v) from t2 order by 1(desc)
сортирует все правильно, хотя в самой таблице данные расположены произвольно... Язык таблицы Pdox ANSI Cyrrilic, указал ДО создания таблицы для драйвера Paradox.
Может я, конечно, последовательность букв в алфавите забыл...:-)


Anatoly Podgoretsky   (2006-11-09 07:47:00) [12]

> Германн  (09.11.2006 1:08:17)  [17]

Загляни в папку с БДЕ


Германн   (2006-11-09 01:08:00) [13]


> Johnmen ©   (08.11.06 21:33) [14]
>
>
> > Германн ©
>
>
> Порядок сортировки определяется COLLATION таблицей. Для
> парадокса это должен быть файл определённого формата.
> Более подробно не скажу...

Речь идет о каком-то отдельном файле или о формате файла *.db?


Германн   (2006-11-09 01:05:00) [14]


> Anatoly Podgoretsky ©   (09.11.06 00:33) [15]
>
> > Германн  (08.11.2006 21:24:13)  [13]
>
> Поздно, я уже не использую БДЕ, но это радует, им потребовалось
> на это свыше 15 лет!!!
>

Значит всё-таки кто-то, "что-то, кое-где у них, порой"  ещё и делает с БДЕ. :-)


> Вот только не понимаю. Запросы в DBD32 работают правильно,
>  хотя сам DBD точно тот же самый, который идет с Д6. А в
> моей программе запрос по прежнему поместил букву Ё в начало
> списка?

До сих пор не понимаю. Гарантировано убедился, что DBD32.exe и все его библиотеки идентичны тем, которые в Д6. Разница в сортировках может исхлдить только от BDE. Так почему тогда моя программа "рожей не вышла"?! Я ведь запускаю её под новой BDE?


Anatoly Podgoretsky   (2006-11-09 00:33:00) [15]

> Германн  (08.11.2006 21:24:13)  [13]

Поздно, я уже не использую БДЕ, но это радует, им потребовалось на это свыше 15 лет!!!


Johnmen   (2006-11-08 21:33:00) [16]


> Германн ©


Порядок сортировки определяется COLLATION таблицей. Для парадокса это должен быть файл определённого формата.
Более подробно не скажу...


Германн   (2006-11-08 21:24:00) [17]

Кстати в BDE, которая идет вместе с BDS2006 исправленны все эти ошибки. Ё, Ч и я работают нормально. Вот только не понимаю. Запросы в DBD32 работают правильно, хотя сам DBD точно тот же самый, который идет с Д6. А в моей программе запрос по прежнему поместил букву Ё в начало списка? :-(


Германн   (2006-11-08 17:19:00) [18]


> Anatoly Podgoretsky ©   (08.11.06 09:24) [8]
>
> > ЮЮ  (08.11.2006 07:51:07)  [7]
>
> В БДЕ не надо пихать следующие буквы Ё, Ч, я
>

Да убедился.


Виталий Панасенко   (2006-11-08 11:36:00) [19]

Т.е. на реальных таблицах(рабочих, на которых эта проблема вылезла) похоже, другой язык...


Виталий Панасенко   (2006-11-08 11:27:00) [20]

Настрой драйвер на необходимый язык (Pdox ANSI Cyrillic) - сортирует с таким настройками правильно


Страницы:   1 2

Наверх

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