Форум: "Базы";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
ВнизСортировка по букве Ё в BDE Найти похожие ветки
← →
Германн © (2006-11-08 00:48) [0]Можно ли заставить BDE правильно сортировать строковые поля по букве ё (Ё)? Или знает ли кто в какой версии Дельфи BDE уже подружилась с русской буквой Ё? Про В2006 я уже знаю.
← →
Anatoly Podgoretsky © (2006-11-08 00:52) [1]> Германн (08.11.2006 0:48:00) [0]
Ё говоришь, нам бы твои заботы, нам бы с Ч и я справиться
← →
Германн © (2006-11-08 01:36) [2]
> нам бы твои заботы, нам бы с Ч и я справиться
Дык это даже и не "забота". Просто впервые с удивлением узнал про Ё. :-)
Лет 6-7 мою программу (точнее её варианты под Win32) довольно активно пользуют по России, но вчера в первый раз заметили эту проблему и сообщили нам! Стал экспериментировать и понял, что не справляется именно BDE от версий Дельфи 6 и ниже. (Д1 не беру в расчет, так как пока не могу проверить).
А что с я? Разве "простых" решений "я" нет?
← →
Ketmar © (2006-11-08 01:42) [3]#255 многие не любят. %-(
← →
Германн © (2006-11-08 02:03) [4]
> Ketmar © (08.11.06 01:42) [3]
>
> #255 многие не любят. %-(
>
Так и 0 (ноль) многие не любят, на него делить нельзя! :-)
Но проблему с русской буквой "я" в первых 256 байтах я знаю.
← →
Anatoly Podgoretsky © (2006-11-08 07:44) [5]> Ketmar (08.11.2006 1:42:03) [3]
Да что я, а Ч за что?
← →
Anatoly Podgoretsky © (2006-11-08 07:46) [6]> Anatoly Podgoretsky (08.11.2006 7:44:05) [5]
Что бы было четко, сделай поле АБВ...юя и попробуй применить к этому UPPER/LOWER
← →
ЮЮ © (2006-11-08 07:51) [7](я и Я) (ч и Ч) для Locate разные символы, даже с loCaseInsensitive
А чем ё не угодило? То что Алёшин и Aлешин воспринимаются одинаково. Вот если бы в паспорта и прочие документы ё из свидетельства о рождении переносилось бы обязательно, тогда другое дедо. А то в одном документе - е, в другом - ё, в пенсионное свидетельство ё вообще не пропихнёшь - клиент не позволяет. Поэтому БД ё вообще пихать не стоит.
← →
Anatoly Podgoretsky © (2006-11-08 09:24) [8]> ЮЮ (08.11.2006 07:51:07) [7]
В БДЕ не надо пихать следующие буквы Ё, Ч, я
Может их больше, но для этого я советовал провести эксперимент с UPPER/LOWER только алфавитЪ расширить до полного, от $20 до $FF и вывести в одном запросе все три варианта
← →
Anatoly Podgoretsky © (2006-11-08 09:38) [9]> Германн (08.11.2006 02:03:04) [4]
> Так и 0 (ноль) многие не любят, на него делить нельзя! :-)
Можно, но некоторые программисты так считают, а это не правильно в корне.
Призывы сообщества проходят мимо ушей.
← →
Виталий Панасенко (2006-11-08 11:27) [10]Настрой драйвер на необходимый язык (Pdox ANSI Cyrillic) - сортирует с таким настройками правильно
← →
Виталий Панасенко (2006-11-08 11:36) [11]Т.е. на реальных таблицах(рабочих, на которых эта проблема вылезла) похоже, другой язык...
← →
Германн © (2006-11-08 17:19) [12]
> Anatoly Podgoretsky © (08.11.06 09:24) [8]
>
> > ЮЮ (08.11.2006 07:51:07) [7]
>
> В БДЕ не надо пихать следующие буквы Ё, Ч, я
>
Да убедился.
← →
Германн © (2006-11-08 21:24) [13]Кстати в BDE, которая идет вместе с BDS2006 исправленны все эти ошибки. Ё, Ч и я работают нормально. Вот только не понимаю. Запросы в DBD32 работают правильно, хотя сам DBD точно тот же самый, который идет с Д6. А в моей программе запрос по прежнему поместил букву Ё в начало списка? :-(
← →
Johnmen © (2006-11-08 21:33) [14]
> Германн ©
Порядок сортировки определяется COLLATION таблицей. Для парадокса это должен быть файл определённого формата.
Более подробно не скажу...
← →
Anatoly Podgoretsky © (2006-11-09 00:33) [15]> Германн (08.11.2006 21:24:13) [13]
Поздно, я уже не использую БДЕ, но это радует, им потребовалось на это свыше 15 лет!!!
← →
Германн © (2006-11-09 01:05) [16]
> Anatoly Podgoretsky © (09.11.06 00:33) [15]
>
> > Германн (08.11.2006 21:24:13) [13]
>
> Поздно, я уже не использую БДЕ, но это радует, им потребовалось
> на это свыше 15 лет!!!
>
Значит всё-таки кто-то, "что-то, кое-где у них, порой" ещё и делает с БДЕ. :-)
> Вот только не понимаю. Запросы в DBD32 работают правильно,
> хотя сам DBD точно тот же самый, который идет с Д6. А в
> моей программе запрос по прежнему поместил букву Ё в начало
> списка?
До сих пор не понимаю. Гарантировано убедился, что DBD32.exe и все его библиотеки идентичны тем, которые в Д6. Разница в сортировках может исхлдить только от BDE. Так почему тогда моя программа "рожей не вышла"?! Я ведь запускаю её под новой BDE?
← →
Германн © (2006-11-09 01:08) [17]
> Johnmen © (08.11.06 21:33) [14]
>
>
> > Германн ©
>
>
> Порядок сортировки определяется COLLATION таблицей. Для
> парадокса это должен быть файл определённого формата.
> Более подробно не скажу...
Речь идет о каком-то отдельном файле или о формате файла *.db?
← →
Anatoly Podgoretsky © (2006-11-09 07:47) [18]> Германн (09.11.2006 1:08:17) [17]
Загляни в папку с БДЕ
← →
Виталий Панасенко (2006-11-09 10:24) [19]Кстати, у меня БДЕ от Д7 - для таблицы
create table t2(
id autoinc,
v varchar(255)
)
запрос вида select upper(v)/lower(v) from t2 order by 1(desc)
сортирует все правильно, хотя в самой таблице данные расположены произвольно... Язык таблицы Pdox ANSI Cyrrilic, указал ДО создания таблицы для драйвера Paradox.
Может я, конечно, последовательность букв в алфавите забыл...:-)
← →
ЮЮ © (2006-11-09 10:44) [20]Смотря что понимать под "правильно" и, соответственноЮ неправильно. Автор, собственно, не продемонстрировал проблему.
Сначала 100 Федоровых идут от А до Я, а потом ещё сто Фёдоровых.
(сейчас под D7 на ХР именно так)
Или 200 Ф[е|ё]доровых идут от А до Я
(кажется так и было при D9 на W2K, но может и ошибаюся)
← →
Anatoly Podgoretsky © (2006-11-09 11:24) [21]Это понятие Accent insensitive - БДЕ такого не поддерживает, используется как есть, без вариантов. БДЕ очень старая технология, не развивается, максимум на что можно расчитывать так, это на редкое исправление программных недоработок.
Кстати мне не ясно, с каким драйвером заработало, с ansi "ascii заработало? А это самый важный языковой драйвер.
← →
Anatoly Podgoretsky © (2006-11-09 11:26) [22]> Виталий Панасенко (09.11.2006 10:24:19) [19]
В Парадоксе и dBase нет varchar!!!
← →
Anatoly Podgoretsky © (2006-11-09 11:27) [23]> Виталий Панасенко (09.11.2006 10:24:19) [19]
> хотя в самой таблице данные расположены произвольно
Откуда такое дикое предположение, что в таблице данные как то упорядочены? Ни одна теория не говорит ни о чем подобном, только обратное - не делайте никаких предположений об внутреннем хранение данных в базе.
← →
Виталий Панасенко (2006-11-09 11:58) [24]
> Anatoly Podgoretsky © (09.11.06 11:27) [23]
Странно, я думал, что в локальных СУБД это актуально. Там есть понятие "текущая запись", "предыдущая"...Чего собственно нету в серверах сиквела(хотя, например в FireBird есть db_key - что-то типа аналога текущей строки(точнее, его номера(строки))) ...
На счет varchar - нету, есть CHARACTER(dBase)/ALPHANUMERIC(Paradox)... Но на локальном сиквеле это звучит так...
Начали флудить...:-)
← →
Виталий Панасенко (2006-11-09 12:08) [25]
> Anatoly Podgoretsky © (09.11.06 11:24) [21]
> Кстати мне не ясно, с каким драйвером заработало, с ansi
> "ascii заработало? А это самый важный языковой драйвер
И, кстати, почему-то в БД FireBird указываем кодовую страницу WIN1251 для работы с кириллицей. Или NONE - важней ? И нужно использовать только её?
В MS SQL таже картина с кодировкой БД...
← →
Anatoly Podgoretsky © (2006-11-09 13:08) [26]> Виталий Панасенко (09.11.2006 11:58:24) [24]
Нету там такого понятия, есть поняте позиция в наборе, но это относится ко всем наследникам TDataset
У меня сейчас в эксплуатацие есть Absolute Database в нем четко видно как записи появляются в разных местах и это самая что ни наесть локальная СУБД, локальней некуда, при этом я в курсе как организовано дело в dBase в подробностях и как в Парадокс в частности.
Просто надо забыть про понятие позиция в таблице, заменить его понятием позиция в наборе данных.
← →
Anatoly Podgoretsky © (2006-11-09 13:11) [27]> Виталий Панасенко (09.11.2006 12:08:25) [25]
C FireBird работать через БДЕ грех, кроме того там БДЕ является посредником.
Для десктопных баз данный драйвер должен обеспечивать работу в соотвествии с локализацией системы, что позволяет работать с заранее неизвестными для БДЕ языками, например с 1251 для xBase
Поэтому его роль чрезвычайна велика, но к сожалению он сделан чрезвычайно криво, по крайней мере для трех букв. Помоему Борланд только сделала вид, что это ANSI драйвер.
← →
Германн © (2006-11-09 13:47) [28]
> 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 14:21) [29]> Германн (09.11.2006 13:47:28) [28]
> C "ascii" ANSI работает. Проверил.
Это хорошая весть. Есть же еще проекты которые работают их можно перевести на 2006 или хотя бы поставить от него БДЕ. Это радует.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.042 c