Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оператор 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 в запросе или в столбце таблицы


Наверх

Титульная страница Поиск, карта сайта Написать письмо