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

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

TIBQuery. Как сделать поиск (select, like) нечувствительным


Darkwing ©   (2006-09-20 16:03:00) 

TIBQuery. Как сделать поиск (select, like) нечувствительным к регистру?


Darkwing   (2006-09-27 08:35:00) [1]


> zdm ©   (26.09.06 17:27) [13]
> не знаю правильный был-ли выход у меня, но сделал так
> 1. для русских букв используй Like AnsiUpperCase
> 2. вообщем идея такая select .... where ... Like AnsiUpperCase.
> ."параметр или string" or Like AnsiLowerCase.."параметр
> или string"  и всё катит , ни какой чувствительности к регистру


Как я понял, имеется в виду функция Delphi - AnsiUpperCase,
Да, но например поле БД может быть "Иванов"
в итоге получится ... WHERE Fam LIKE 'иванов' or Fam LIKE 'ИВАНОВ' - итог такого запроса будет ноль строк.
Для достижения результата поле БД тоже надо подвергнуть выравниванию по регистру, а с символами кириллицы нет.


> Desdechado ©

> использовать правильный сервер БД, а не старье


Какой, подскажите пожалста? Надо чтоб без BDE работал.


zdm   (2006-09-26 17:27:00) [2]

не знаю правильный был-ли выход у меня, но сделал так
1. для русских букв используй Like AnsiUpperCase
2. вообщем идея такая select .... where ... Like AnsiUpperCase.."параметр или string" or Like AnsiLowerCase.."параметр или string"  и всё катит , ни какой чувствительности к регистру


Desdechado   (2006-09-26 17:10:00) [3]

использовать правильный сервер БД, а не старье


Darkwing   (2006-09-26 16:00:00) [4]

Слатинскими символами работает и UPPER. Что делать если символы не латинские(кириллица).


Desdechado   (2006-09-20 21:09:00) [5]

select upper( obj_name collate win1251 ) from objnames


Fay   (2006-09-20 19:10:00) [6]

2 Desdechado ©   (20.09.06 17:21) [5]
> забывать про COLLATE
А нельзя ли чуточку подробнее. Ну хоть строчку кода, plz


Desdechado   (2006-09-20 18:56:00) [7]

Fay ©   (20.09.06 18:47) [7]
"- что нужно, чтоб жить хорошо?
- достаточно уехать на Гаваи"


Fay   (2006-09-20 18:47:00) [8]

2 Darkwing ©   (20.09.06 16:03)
> Как сделать поиск (select, like) нечувствительным к регистру?
Достаточно перейти на MSSQL (например 2005 Express)

P.S.
Я в курсе, что автор спрашивал о чём-то другом 8)


palva   (2006-09-20 18:04:00) [9]


> Darkwing ©   (20.09.06 16:14) [2]
> где почитать про character set? скажите пожалста.

Можно указать при создании поля:
NEW_TEXT VARCHAR (20) CHARACTER SET WIN1251 COLLATE WIN1251

Еще у базы может быть свой CHARACTER SET по умолчанию, который используется если не указан у поля. А почитать - даже не знаю где. Наверно, в книге по FireBird


Desdechado   (2006-09-20 17:21:00) [10]

> с UPPER в ряде IB-совместимых СУБД - засада.
Не забывать про COLLATE


Сергей М.   (2006-09-20 16:26:00) [11]


> Sergey13 ©   (20.09.06 16:22) [3]


с UPPER в ряде IB-совместимых СУБД - засада.


> Darkwing ©   (20.09.06 16:03)


см.выше


Sergey13   (2006-09-20 16:22:00) [12]

> [0] Darkwing ©   (20.09.06 16:03)
> Как сделать поиск (select, like) нечувствительным к регистру?
Что бы "сделать поиск (select, like) нечувствительным к регистру", надо его  сделать поиск нечувствительным к регистру, т.е. привести поле и строку поиска к одному регистру. UPPER например.


Darkwing   (2006-09-20 16:14:00) [13]

где почитать про character set? скажите пожалста.


palva   (2006-09-20 16:08:00) [14]

А установка Character Set разве не помогает?


Наверх

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