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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2007, 23:42   #1
Arteom
Пользователь
 
Регистрация: 22.08.2007
Сообщений: 59
По умолчанию Поиск в базе по значению в Edit

Всем здравствуйте!
Подскажите пожалуйста, как организовать вот такой поиск в базе.
У меня есть база, я по ней осуществляю поиск по имени одного из полей.
Я сделал поиск так, что ввожу в Edit слово для поиска, нажимаю Button Найти, осуществляется соответствующая выборка в базе
и в DBGridе отображается результат поиска. Поиск осуществляется верно, но хотелось бы, чтобы при ввоже в Edit символов в
DBGridе отображались все поля, начинающиеся на введенные символы. Соответственно чем больше символов, тем достовернее поиск.
При такой реализации удобнее и совсем не нужен мой Button Найти.
Помогите пожалуйста.
Arteom вне форума Ответить с цитированием
Старый 17.10.2007, 00:10   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это реализуется гораздо проще, чем вы думаете.
Есть такое дополнение к SELECT - "LIKE". Эта штучка позволяет искать все записи, у которых в заданном вами поле есть хотя бы одно вхождение. Ну, по аналогии с Pos() для стрингов...
Например, запрос вроде:
SELECT * FROM FAM WHERE (FAMILY LIKE 'ИВАН')
выдаст всех дядек и тетек, у которых в фамилии есть такое буквосочетание.
Правда, это применимо только для символьных полей.
Есть тонкости:
- "_" можно вставить взамен какого-то символа, значение которого вам неважно;
- "%" то же, но для последовательности символов, которые вас не волнуют.
Побробнее? Ну возьмите какой-нибудь справочник по языку SQL, там это обязательно должно быть.

Последний раз редактировалось mihali4; 17.10.2007 в 00:16.
mihali4 вне форума Ответить с цитированием
Старый 19.10.2007, 22:23   #3
Arteom
Пользователь
 
Регистрация: 22.08.2007
Сообщений: 59
По умолчанию

Большое спасибо mihali4. Как вы и советовали, сделал 'SELECT * FROM Table1, Table2 WHERE Table1.pole1 LIKE '''+MainForm.Edit.Text+''' + ''%''
и все получилось. Все оказалось просто
Arteom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
апят пра поиск в базе данных bmb_66 БД в Delphi 0 14.03.2008 17:38
Поиск по базе данных ERASERROR БД в Delphi 4 14.03.2008 16:34
Поиск по базе Антон Шестаков БД в Delphi 1 22.01.2008 20:32
Поиск по базе Таня84 БД в Delphi 3 09.02.2007 10:53