Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

Способы сортировки или как отсортировать украинские символы?   Найти похожие ветки 

 
zorik ©   (2006-07-20 14:08) [0]

Как указать способ сортировки украинских символов? Как, я понял нужно создавать свой COLLATION ORDERS. По ссылкам из книги "Мир InterBase" ничего путного не нашел.


 
Desdechado ©   (2006-07-20 15:39) [1]

Врать не буду, поэтому только направлю на ibase.ru
Вроде, в FB1.5 уже есть украинский COLLATE


 
Виталий Панасенко   (2006-07-20 15:51) [2]

Есть у меня
program ToWin1251;                                              

// Программа, внедряет в табливы сортровки, и перевода в верхний, и
// нижний регистры, Interbase 5.0 - 6.0 поддержку украинского языка.
//
// Для работы программы скопируйте ее в один дирректорий с файлом
// gdsintl.dll и запустите.
//
// После чего работайте как и раньше с collate pxw_cyrl.win1251.
//
// create database "test.gdb" default character set win1251; - создание.
// select upper(fam collate pxw_cyrl) from s_empl; - выборка с upper.
// select * from s_empl order by fam collate pxw_cyrl; - выборка с сортировкой.
// И т.д.
//
// (с) STAR LEADER   01.04.2000.
// Гаврильев Сергей.
// press@cruizer.poltava.ua
//
// P.S. И не надейтесь, это не первоапрельская шутка, просто день хороший :).


 
zorik ©   (2006-07-20 16:33) [3]


> Виталий Панасенко   (20.07.06 15:51) [2]


сортировка всеравно неправильная, "і" "а", "б", ...


 
Lexer ©   (2006-07-20 16:36) [4]

Из документации FB:

На правильную сортировку национальных символов, как правило, влияет два параметра - набор символов (CHARSET) и порядок сортировки (COLLATION). И даже при правильно выставленных этих параметрах на уровне БД и запросов, вы можете обнаружить, что TpFIBDataSet сортирует их неправильно. Дело в том, что при локальной сортировке по
умолчанию используется простой метод сортировки без сравнения национальных кодировок.
Так, как если бы был указан неопределенный набор символов (NONE).
В компоненте TpFIBDataSet существует возможность сортировки в соответствии с
национальной кодировкой. Установить альтернативный метод сравнения строковых полей
можно при помощи свойства OnCompareFieldValues. Существуют три готовых метода для
Ansi- сортировки:
protected function CompareFieldValues(Field:TField;const S1,S2:variant):integer;
virtual;
public function AnsiCompareString(Field:TField;const val1, val2: variant):
Integer;
public function StdAnsiCompareString(Field:TField;const S1, S2: variant):
Integer;
AnsiCompareString будет учитывать регистр символов, а StdAnsiCompareString будет,
наоборот, игнорировать регистр.
pFIBDataSet1.OnCompareFieldValues := pFIBDataSet1.AnsiCompareString;
pFIBDataSet1.OnCompareFieldValues := pFIBDataSet1.StdAnsiCompareString;
По умолчанию для CompareFieldValues вы можете установить один из стандартных
методов, либо написать свой, если ни один из готовых вам не подходит.


 
zorik ©   (2006-07-20 17:24) [5]


> Lexer ©   (20.07.06 16:36) [4]


сортировка не локальная



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
1-1154450022
Tanya
2006-08-01 20:33
2006.09.24
Вытащить текст из дочернего окна


2-1157319054
ramzes2
2006-09-04 01:30
2006.09.24
как назначить родителя диалогу


1-1155214321
Mandragor
2006-08-10 16:52
2006.09.24
Rave Reports


15-1156681887
Desdechado
2006-08-27 16:31
2006.09.24
Дружба


2-1157398753
TimScorp
2006-09-04 23:39
2006.09.24
FreeReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский