Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

UPPER и COLLATE   Найти похожие ветки 

 
PSN   (2004-09-09 00:51) [0]

Здравствуйте.
Помогите пожалуйста разобраться с логикой работы функции UPPER.

Есть таблица.
CREATE TABLE ARTICLES (
   TERMINAL_ID     T_TERMINAL,
   ARTICLE_ID      INTEGER NOT NULL,
   NAME            VARCHAR(24) NOT NULL COLLATE PXW_CYRL,
   NEWNAME         VARCHAR(24) NOT NULL
);


В полях NAME и NEWNAME храняться одинаковые значения.

Результаты следующих двух запросов разные.

select UPPER(NAME) from ARTICLES  Where UPPER(NAME) starting with UPPER(:NAME)
select UPPER(NEWNAME) from ARTICLES  Where UPPER(NEWNAME) starting with UPPER(:NAME)
Для поля NAME UPPER  приводит к верхнему регистру для NEWNAME нет.
Это и понятно - для NAME указан COLLATE. Но если и для NEWNAME указать COLLATE PXW_CYRL таким вот запросом:
update RDB$RELATION_FIELDS set RDB$COLLATION_ID = 1 where (RDB$FIELD_NAME = "NEWNAME") and RDB$RELATION_NAME = "ARTICLES")

то все равно UPPER не работает.
Подскажите какие пути решения есть для данной проблемы? Или COLLATE можно указывать только при создании таблицы?
Да и еще успользую FireBird 1.0.2.908

С уважением Прищепа Сергей.


 
Cobalt ©   (2004-09-09 00:57) [1]

Вообще-то, изменение полей логичнее делать ALTER Table


 
Zacho ©   (2004-09-09 01:01) [2]

COLLATE ожно указать непосредственно в запросе.
А вообще по работе с русскими буквами есть хорошая статья - http://www.ibase.ru/devinfo/ibrusfaq.htm


 
PSN   (2004-09-09 01:11) [3]

Спасибо большое Zacho © за статью  http://www.ibase.ru/devinfo/ibrusfaq.htm
помог следующий код UPDATE ARTICLES SET NEWNAME=NEWNAME
его нужно было выполнить после изменения COLLATE
update RDB$RELATION_FIELDS set RDB$COLLATION_ID = 1 where (RDB$FIELD_NAME = "NEWNAME") and RDB$RELATION_NAME = "ARTICLES")



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

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
4-1094129994
Lola
2004-09-02 16:59
2004.10.10
Контроль за отправленной и входящей почтой.


1-1096200942
Гость
2004-09-26 16:15
2004.10.10
TstatusBar. Изменение цвета.


14-1095839113
Программер_
2004-09-22 11:45
2004.10.10
Что-то я совсем запутался... чем может быть не надежн этот


1-1096146359
VAmpiro$
2004-09-26 01:05
2004.10.10
n:= sin(x) - програмно узнать значение x


4-1092391573
Дмитрий Ботвин
2004-08-13 14:06
2004.10.10
Тип запуска службы