![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оператор UPPER [D6, FB]
O.O © (2007-01-08 07:29:00)В условии выборки WHERE оператора SELECT использую такую вот конструкцию для регистронезависимой контекстной выборки:
UPPER(NAME) LIKE ''%' + AnsiUpperCase(E_Context.Text) + '%'''
Всё бы хорошо, да только это не срабатывает при поиске маленьких букв "ё". Причём если есть в названии большие "Ё" то они прекрасно находятся. Делаю вывод, что AnsiUpperCase ведёт себя адекватно, а UPPER нет.
Вопрос: какой способ регистронезависимой контекстной выборки можно применить чтоб буквы "ё" нормально участвовали в нём?
O.O (2007-01-11 08:34:00) [1]Обслуживаю базу с помощью IBExpert
В общих параметрах базы поле "Кодировка" недоступно
В поле "Набор символов экранного шрифта" выбрано RUSSIAN_CHARSET
В Param IBDatabase у меня так:
user_name=SYSDBA
password=*****
lc_ctype=WIN1251
Для выборки использую компонент IBSql. Как в нём указать кодировку?
Так же как в IBDatabase?
atruhin (2007-01-10 18:56:00) [2]Ну во первых не указанны компоненты доступа.
Кодировка должна быть указана, и быть одинаковой:
в БД, таблице и в компонентах доступа, тогда все работает.
В таблице вроде можно не указывать, не помню.
O.O (2007-01-10 09:41:00) [3]
> Desdechado © (09.01.07 12:00) [4]
Заменил на
UPPER(NAME collate win1251) LIKE ''%' + AnsiUpperCase(E_Context.Text) + '%'''
сработало правильно. Непонятно почему неправильно работает первый вариант, ведь свойство Collate поля NAME у него стоит правильно, win1251 ?
Desdechado (2007-01-09 12:00:00) [4]SELECT UPPER( obj_name collate win1251 ) from objnames
O.O (2007-01-09 06:19:00) [5]Collate в столбце таблицы пробовал и WIN1251 и PXW_CYRL
- не помогает, а как непосредственно в запросе указать?
try (2007-01-08 13:43:00) [6]http://www.ibase.ru/devinfo/ibfaq.htm#1.1
_RusLAN (2007-01-08 11:30:00) [7]Пропробуйте явно указать кодировку с помощью Collate в запросе или в столбце таблицы