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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 13:53   #1
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию Поиск через Edit

Самый простой пример, но не получается никак, прошу помочь.
Делаю форму, кидаю на нее DBGridEh,Edit и Button
База Access, в ней несколько колонок, одна из них "фамилия"
Создаю ADOConnection, провайдер Microsoft.Jet.OLEDB.4.0
Создаю ADOTable, указываю коннект и базу, sved.mdb
Создаю ADOQuery, указываю коннект и в sql пишу
Код:
SELECT *
FROM sved
и DataSource, пишу датасет на adoquery

в кнопке пишу
Код:
ADOQuery1.Active:=false;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT *');
 ADOQuery1.SQL.Add('FROM sved');
 ADOQuery1.Active:=true;
 DataSource1.DataSet:=ADOQuery1;
все в Active=True
Результат, при нажатии на кнопку, в таблице выводятся все результаты.
А надо вписать фамилию, и появились все строки в которых есть эта фамилия.
rombler69 вне форума Ответить с цитированием
Старый 14.10.2009, 14:00   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Ну и измените Ваш код на такой:
Код:
ADOQuery1.Active:=false;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT *');
 ADOQuery1.SQL.Add('FROM sved');
 ADOQuery1.SQL.Add('WHERE Fam='+QuotedStr(Edit1.Text));
 ADOQuery1.Active:=true;
 DataSource1.DataSet:=ADOQuery1;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 14.10.2009, 14:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
ADOQuery1.SQL.Add('SELECT *');
 ADOQuery1.SQL.Add(' FROM sved ');
 ADOQuery1.SQL.Add('WHERE фамилия LIKE %'+Edit1.text+'%');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2009, 14:01   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Stilet
, одновременно
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 14.10.2009, 14:15   #5
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию

Спасибо большое всем, теперь все правильно
А не могли бы вы пояснить про
Код:
QuotedStr
??
Код:
LIKE %'+Edit1.text+'%'
это указываем шаблон, и сравниваем по нему, я правильно понял ??
rombler69 вне форума Ответить с цитированием
Старый 14.10.2009, 14:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
QuotedStr
Функция обрамляющая строку в одинарные ковычки. Загляни в исходники ее и все сам увидишь
Цитата:
LIKE %'+Edit1.text+'%'
Указания отсеивать по вхождению слова с поле. Аналог функции pos в паскале (если знаешь о ней). Дабы можно было получить запись, даже если в ней содержится часть строки в Эдите.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2009, 14:52   #7
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию

Stilet Спасибо за ответ
rombler69 вне форума Ответить с цитированием
Старый 12.05.2013, 15:34   #8
DeathReject
 
Регистрация: 28.04.2013
Сообщений: 4
По умолчанию

Все отлично работает, но вот маленький вопрос
В первый раз я ввожу значение, нажимаю на кнопку и в дбгрид выводится инф.
После второго ввода первая запись убирает и появляется на ее месте вторая.
А мне нужно что бы после каждого нажатия отображались введенные данные
DeathReject вне форума Ответить с цитированием
Старый 12.05.2013, 17:00   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
После второго ввода первая запись убирает и появляется на ее месте вторая.
Приведенные выше примеры не могут давать такого эффекта, если сами данные в БД не изменяются.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2013, 17:12   #10
DeathReject
 
Регистрация: 28.04.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Приведенные выше примеры не могут давать такого эффекта, если сами данные в БД не изменяются.
я к вам в icq добавился, если не составит труда примите заявку
DeathReject вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск/копирование данных в edit kate158 Компоненты Delphi 4 24.09.2009 16:58
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
поиск текста из edit по StringGrid [?] dalien Общие вопросы Delphi 3 18.06.2009 22:35
Проверка Edit, через val.. r-tem Компоненты Delphi 2 13.12.2007 20:19
Поиск в базе по значению в Edit Arteom БД в Delphi 2 19.10.2007 22:23