2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Регистронезависимая фильтрация C++, IBExpert+FireBird
Сообщение20.11.2009, 13:30 


14/11/09
26
Всем доброго времени суток.
Вопрос такой.
Создаю приложение для работы с БД. Требуется осуществить фильтрацию по нескольким значениям. Причем сделать это так, чтобы проверка шла с первой буквы и была регистронезависима.

То есть, к примеру в поле "Производитель" есть 2 записи: AMD и Samsung.
И требуется, чтобы при вводе буквы "а" выводился AMD, а не Samsung (отфильтровывает так потому. что в слове "Samsung" есть маленькая буква "a", а в слове "AMD" ее нету).

Вот фрагмент кода:

Table_tov->Filter="NAME_TOV LIKE '%"+Edit1->Text.Trim()+"%";

 Профиль  
                  
 
 Re: Регистронезависимая фильтрация C++, IBExpert+FireBird
Сообщение20.11.2009, 13:52 
Аватара пользователя


25/03/09
94
Цитата:
"'%"+Edit1->Text.Trim()+"%'"
Так делать очень плохо, все развалится, если ввести в поле спецсимволы (http://xkcd.com/327/). Лучше использовать что-то вида DbParameter или CreateParameter. Хотя, могу ошибаться, не работал с Interbase.
Цитата:
...отфильтровывает так потому. что в слове "Samsung" есть маленькая буква "a", а в слове "AMD" ее нету
Зачем тогда регистронезависимость?
Если нужно искать только с первого символа, то первый знак % не нужен, LIKE 'a%' найдет AMD, LIKE '%A%' найдет обе строки.

 Профиль  
                  
 
 Re: Регистронезависимая фильтрация C++, IBExpert+FireBird
Сообщение20.11.2009, 17:34 


14/11/09
26
В том-то и дело, что я с этими параметрами не встречался даже...

А регистронезависимость нужна для того, чтобы ввели мы к примеру AMd и нашли
все AMD. Иначе при вводе AMd на данном этапе ничего не находит.

 Профиль  
                  
 
 Re: Регистронезависимая фильтрация C++, IBExpert+FireBird
Сообщение20.11.2009, 18:20 
Аватара пользователя


25/03/09
94
Striderr в сообщении #263881 писал(а):
В том-то и дело, что я с этими параметрами не встречался даже...

А регистронезависимость нужна для того, чтобы ввели мы к примеру AMd и нашли
все AMD. Иначе при вводе AMd на данном этапе ничего не находит.


Попробуйте UPPER(...) использовать.

 Профиль  
                  
 
 Re: Регистронезависимая фильтрация C++, IBExpert+FireBird
Сообщение20.11.2009, 19:28 


14/11/09
26
Спасибо большое.
Но тут уже получается, что необходимо IBQuery для этого использовать?
В принципе, если что, оставлю просто фильтрацию по первой букве...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group