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

Вниз

Как заставить FireBird сортировать кирилицу по "человечески"?   Найти похожие ветки 

 
Step[B.M.]   (2005-02-10 21:41) [0]

Украинская раскладка. Спасибо.


 
Anatoly Podgoretsky ©   (2005-02-10 21:48) [1]

А оно поддерживает украинский язык?


 
miwa ©   (2005-02-10 22:10) [2]

Установить COLLATE в PXW_CYRL.

А оно поддерживает украинский язык?
Так, звичайно. :о))


 
Anatoly Podgoretsky ©   (2005-02-10 22:22) [3]

Да просто спрашиваю, посколько постоянно вижу подобный вопрос. Про Интербейс ничего не могу сказать, не пользуюсь.


 
miwa ©   (2005-02-11 00:38) [4]

Хех, Анатолий, большинство вопроссов на форуме повторяются :о)


 
Anatoly Podgoretsky ©   (2005-02-11 00:47) [5]

Но я не видел нормального ответа на этот вопрос. При том не только по Интербейсу.


 
miwa ©   (2005-02-11 02:22) [6]

Хм...
Правда, остается открытым вопросс, что имелось ввиду под сортировать кирилицу по "человечески". Во всяком случае вот такую табличку:

SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE "test.gdb"
USER "SYSDBA" PASSWORD "masterkey"
PAGE_SIZE 1024
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE NEW_TABLE (
   STRING_TEST  VARCHAR(10) COLLATE PXW_CYRL
);

с вот такими данными
STRING_TEST
Абв
аБв
абВ
абв
АБВ
ІЇЄ
іїє
іЇє
Іїє
іїЄ
ЄЇІ
єїі
єаб

Firebird в таком запросе
select string_test from new_table order by string_test
выдал вот это:

STRING_TEST
абв
абВ
аБв
Абв
АБВ
ЄЇІ
ІЇЄ
Іїє
іЇє
іїЄ
іїє
єаб
єїі

Хм...
Тогда простите, пожалуйста, погорячился. Это и вправду некорректная сортировка.


 
P.N.P. ©   (2005-02-11 08:52) [7]

кодировка должна быть WIN1251_UA,
судя по http://firebird.sourceforge.net/index.php?op=doc&id=fb_1_5_charsets&nosb=1


 
Step[B.M.]   (2005-02-12 13:48) [8]

Спасибо за дискуссию. Все верно сказано.


 
DSKalugin ©   (2005-02-12 14:05) [9]

PAGE_SIZE 1024
Издеваешься над кем с такой страницей? Надо пользователями или над админом?
Менять срочно минимум на 4096


 
Rule ©   (2005-02-13 09:32) [10]

http://www.ibase.ru/download/recodeib.zip

вот украинская кодировка


 
Rule ©   (2005-02-13 09:35) [11]

из новостей:
Украина может спать спокойно. Пока в IB не существует поддержки кодировки украинского набора символов, а для IB 6 появилось только описание способа добавления кодировок (к исходникам, которых пока нет), Сергей Гаврильев изготовил кодировку и утилиту для прописывания этой кодировки вместо PXW_CYRL. Т.е. достаточно запустить "патчер", и после этого IB будет сортировать буквы в WIN1251 и PXW_CYRL по другому. Есть также и готовые dll для IB 5 и 6. Соответственно, правильно будет рабо
тать и UPPER (опять же, для pxw_cyrl).


всё это можно прочитать на
http://www.ibase.ru/newsarch/000516.htm
там же ссылки

ну и плюс
http://www.ibase.ru/newsarch/000516.htm


 
miwa ©   (2005-02-14 11:28) [12]

DSKalugin ©   (12.02.05 14:05) [9]
PAGE_SIZE 1024
Издеваешься над кем с такой страницей? Надо пользователями или над админом?
Менять срочно минимум на 4096

Если мне не изменяет склероз, размер страницы рекомендуется такой же как размер кластера на ФС?


 
DSKalugin ©   (2005-02-14 18:13) [13]

2 miwa ©  
изменяет тебе склероз и хорошо если только он :-))
на ibase.ru есть статья по теме размера стр


 
miwa ©   (2005-02-15 15:41) [14]


> DSKalugin ©   (14.02.05 18:13)

Да, вы правы. Почитал книжки, уяснил. Правда - говорится о рекомендациях размера страницы 4К при размере кластера 4К на НТФС и 16К на ФАТ32; но понятия "размер страницы" и "размер кластера" не приравниваюся - это я уже сам "приравнял".


 
DSKalugin ©   (2005-02-15 17:21) [15]

2 miwa ©
что НЕ надо (или нельзя) делать при работе с Interbase
http://www.ibase.ru/devinfo/dontdoit.htm
цитирую

Не надо делать PageSize = 1024 или 2048
Устанавливайте при создании (или restore) для баз данных размер страницы 4 или 8 килобайт. При этом нужно чтобы логический диск был отформатирован с размером кластера идентичным размеру страницы. В Firebird и Yaffil можно использовать размер страницы 16К.

Но и это еще не все. Вернее не основное для выбора размера стр.
Вот тут расписано
Какой размер страницы выбрать?

http://www.ibase.ru/ibfaq.htm
Желательно чтобы размер страницы совпадал с размером кластера логического диска, или был больше. Дело в том, что если размер кластера больше размера страницы БД, то при записи двух страниц БД один и тот же кластер будет записан 2 раза (если размер страницы 4К, а размер кластера 8К). В обратном случае, когда размер page size больше размера кластера, происходит больше чтений или записи кластеров, однако это не так важно, как предыдущий случай (но размер кластера 512 байт при 8К page size - это тоже не очень хорошо).

Размер страницы в первую очередь влияет на индексы с длинными (строковыми) ключами. Чем больше размер ключа или средний размер записи таблицы, тем больший размер страницы следует выбрать - если у вас gstat -a выдает наличие индексов с Depth = 4, то стоит увеличить размер страницы. Также стоит выбрать больший размер страницы, если в БД предполагается хранить много blob размером 50К и больше....


 
}|{yk ©   (2005-02-15 17:33) [16]

В FireBird
COLLATE BY WIN1251_UA



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

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

Наверх




Память: 0.49 MB
Время: 0.037 c
4-1106989591
Дима
2005-01-29 12:06
2005.03.13
Глупый вопрос!


1-1109620346
User1
2005-02-28 22:52
2005.03.13
StringGrid. Несколько вопросов.


14-1108895946
Delta
2005-02-20 13:39
2005.03.13
манифест Windows XP


3-1108213711
cherrex
2005-02-12 16:08
2005.03.13
Перенос из одной БД в другую


1-1109594673
hgd
2005-02-28 15:44
2005.03.13
Какая функция позволяет





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