Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 21:34   #1
Alex2391
Пользователь
 
Аватар для Alex2391
 
Регистрация: 31.01.2011
Сообщений: 54
По умолчанию Поиск без учета регистра

Как в наборе данных выполнить поиск записей без учета регистра?
Код:
select ....
from.....
where Upper (e.name_vel) like :in_nv
Так не работает.
Даже не обязательно прописывать в наборе данных, просто объясните как написать SQL запрос?

Последний раз редактировалось Alex2391; 18.03.2011 в 21:36.
Alex2391 вне форума Ответить с цитированием
Старый 18.03.2011, 21:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это зависит от базы к которой обращается, да и в ней запросто может быть настройка регистро-чувствительности при работе с символьными строками
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.03.2011, 22:02   #3
Alex2391
Пользователь
 
Аватар для Alex2391
 
Регистрация: 31.01.2011
Сообщений: 54
По умолчанию

Базу делал в firebirb'e. Какую еще инфу надо?
Alex2391 вне форума Ответить с цитированием
Старый 18.03.2011, 22:58   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

http://www.ibase.ru/devinfo/ibrusfaq.htm
asmodey1 вне форума Ответить с цитированием
Старый 20.03.2011, 17:30   #5
Alex2391
Пользователь
 
Аватар для Alex2391
 
Регистрация: 31.01.2011
Сообщений: 54
По умолчанию

Переделал базу под кодировку WIN1251. В приведенной выше ссылке написано, что "в Firebird 1.5 и 2.0 для Win1251 UPPER работает без указания collate". Все равно запрос не работает:
Код:
CREATE PROCEDURE POISK 
returns (
    nv varchar(50))
as
begin
  for select name_vel from edinicy_si
  where upper (name_vel) = 'длина'
  into :nv
  do
  suspend;
end
В результате нужно, чтоб находило "Длина", "длиНа" и тд.
Что я делаю не так?
Alex2391 вне форума Ответить с цитированием
Старый 20.03.2011, 21:13   #6
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Alex2391 Посмотреть сообщение
Как в наборе данных выполнить поиск записей без учета регистра?
Код:
select ....
from.....
where Upper (e.name_vel) like :in_nv
Так не работает.
Даже не обязательно прописывать в наборе данных, просто объясните как написать SQL запрос?
Может преобразовывать строку на стороне клиента?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 20.03.2011, 21:33   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

where upper (name_vel) = 'длина' --- ????
интуитивно чувствую что надо:
where upper (name_vel) = 'ДЛИНА'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2011, 08:39   #8
Alex2391
Пользователь
 
Аватар для Alex2391
 
Регистрация: 31.01.2011
Сообщений: 54
По умолчанию

Изменил в запросе 'длина' на 'ДЛИНА': никакого эффекта.
Может у кого есть работающий пример?
Alex2391 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск без учета регистра MSD БД в Delphi 15 12.05.2010 15:49
Поиск без учета регистра Cartman18 БД в Delphi 2 15.10.2009 15:18
Lookup без учета регистра ИВАНьКа Общие вопросы C/C++ 1 30.08.2009 12:48
Locate без учета регистра символов _SERGEYX_ БД в Delphi 2 09.08.2007 09:52
Проверка текста без учета регистра John_chek Общие вопросы Delphi 8 08.06.2007 08:50