![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 разве не помогает?