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




Вниз

Для гуру IB 


Long   (2001-12-10 17:01) [0]

Для начала выжимка из скрипта (База данных IB в третьем диалекте):

.....
CREATE DOMAIN "STR120" AS
VARCHAR(120) CHARACTER SET WIN1251
COLLATE PXW_CYRL ;
.......
CREATE TABLE CLIENT (
........
CLNTNAME STR120,
.......

При попытке создать индекс по этому полю вываливается ошибка о слишком
большой длине ключа
(видимо сказывается юникодовская кодировка).
Из определения домена убрал COLLATE PXW_CYRL, индекс создался без вопросов.
После этого изменяю домен, добавляю COLLATE PXW_CYRL и ..... о чудо ошибок
нет. Но только не понятно, как теперь это все будет работать ? Как надо мне
(т.е. правильно и с сортировкой символов по PXW_CYRL) или как захочется
системе ?



Romkin   (2001-12-10 18:42) [1]

Индекс в IB создается длиной не более 200 байт, если не ошибаюсь (ну около этого). Коллатион PXW_CYRL сразу берет 3 байта на символ.
Скорее всего, то, что прошло изменение домена - глюк IB6. Работать скорее всего будет, но до первого restore, который не пройдет (выдаст ошибку при создании индекса). Так что советую не рисковать.
PXW_CYRL используется практически только для UPPER либо containing.
Практически в любом случае хранить непосредственно данные в этом сравнивании особого смысла не имеет, тем более создавать индекс.




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




Наверх





Память: 0.72 MB
Время: 0.03 c
14-42548          apav                  2001-11-13 18:31  2002.01.14  
ABC


3-42392           Shoo                  2001-12-13 13:20  2002.01.14  
Вставка записей в 2 таблицы


1-42463           Тарас                 2001-12-25 11:26  2002.01.14  
Как справиться с проблемкой


1-42515           Simonaln              2001-12-26 11:32  2002.01.14  
Расстояние между строками в Memo


1-42497           Victor                2001-12-25 19:40  2002.01.14  
ColorDialog