![]() |
|
![]() ![]() ![]() |
|
PaWeLL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Необходимо организовать поиск по таблице сотрудников по поле фамилия. Причем искать должно не только по полной фамилии, но и по её части.
Запрос такой:
а - содержимое поля для поиска. Запрос работает но не полностью. Он выводит результат только если запрашиваемая фамилия введена полностью и с большой буквы. Если ввести часть фамилии или с маленькой буквы, то результат пустой. Подскажите пожалуйста правильный запрос. Это сообщение отредактировал(а) PaWeLL - 4.12.2009, 17:49 |
|||
|
||||
jcyber |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 2.4.2009 Репутация: нет Всего: нет |
Реализация на SQL зависил от БД.
Но логика такая, что нужно передавать строку "а" состоящая только из строчных букв, а поле таблицы, по которой происходит поиск нужно тоже перевести в нижний регистр. |
|||
|
||||
ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
PaWeLL, начни с приведения к одному регистру:
в коде делфи вместо 'a' напиши AnsiUpperCase(a) в SQL коде вместо where Surname like напиши where Upper(Surname) like ты не указал СУБД посему в SQL коде может быть написана другая ф-ия, но в её названии скорее всего будет фигурировать слово Upper. ЗЫ. Можно конечно и к Lower - на вкус и цвет как говорится... лишь бы регистры били одинаковые. |
|||
|
||||
PaWeLL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Спасибо. Поиск заработал. Одна только странная вещь. Поиск почему-то не любит букву Я. При вводе части имени с буквой Я результат пустой. Если попробовать ввести часть того же имени только без Я, то результат есть.
Подскажите, что с этим делать? Да, кстати БД Paradox, если это сейчас важно. Это сообщение отредактировал(а) PaWeLL - 4.12.2009, 18:58 |
|||
|
||||
ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
PaWeLL, если это не стандартный глюк делфей, то тогда укажи версию делфи, СУБД и её версию и через какие компаненты подключаешься к БД.
|
|||
|
||||
PaWeLL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Delphi 7, база данных paradox 7. Подключаю все через SQL explorer 4.0 |
|||
|
||||
romchyk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 3.1.2010 Репутация: нет Всего: нет |
Вместо like используйте ilike (в postgrtesql не учитывает регистр).
Например так 'Select filelds from workers where Surname ilike '+#39+'%'+a+'%'+#39+';'; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |