![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Большие и маленькие буквы в SQL запросе [D7, IB6.x]
Назаров Евгений © (2003-02-03 21:43:00)Привет всем, возникла проблемка - в запросе select * from store UPPER(name)=UPPER("Wellcome Всем")
- UPPER работает только для латиницы, а русские буквы не увеличивает зараза. Как быть ??? ( при создании базы ставил character set = none)
Romkin (2003-02-04 10:26:00) [1]Проще надо быть - если у поля win1251, достаточно
select * from store
where UPPER(name collate PXW_CYRL)="WELLCOME ВСЕМ"
Все дело в том, что при upper индекс все равно не применяется, поэтому прописывать у поля PXW_CYRL не есть хорошо - вместо 1 байта на символ расходуется 3.
Если индекс использовать все же хочется, можно просто организовать второе поле, также с кодировкой win1251 collate win1251, и в триггере писать в него UPPER(... collate PXW_CYRL). Проиндексировав его, можно искать с использованием индекса (индекс в IB не более 256 байт по суммарной длине его полей).
DarkGreen (2003-02-04 06:12:00) [2]Устанавливай charset ручками типа:
create table MY_TBL (
ID integer not null primary key,
NAME varchar(30) character set WIN1251 collate PXW_CYRL
);
Johnmen (2003-02-04 00:19:00) [3]>...при создании базы ставил character set = none)
Вот поэтому и не работает :)
Выходы :
1. Использовать UDF, имеющую соотвествующую UPPER функцию
2. При создании базы/поля указывать соотв. character set и collate
Назаров Евгений (2003-02-04 00:14:00) [4]ПАМАГИТЕЕЕЕЕЕЕЕЕЕЕ !!!!