Главная страница
    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.04 c
2-1157531619
webpauk
2006-09-06 12:33
2006.09.24
как определить в каком столбце DBGrid юзер кликнул мышью?


2-1157308879
иван8511
2006-09-03 22:41
2006.09.24
Матричный принтер


2-1157452122
KItDod
2006-09-05 14:28
2006.09.24
вопрос


15-1157187715
Andy BitOff
2006-09-02 13:01
2006.09.24
DjVu просмотровщик


2-1157011598
Dr. Genius
2006-08-31 12:06
2006.09.24
TFileStream





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский