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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 19:47   #1
Seva2011
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 31
По умолчанию Вывод из бд как в гугле или яндексе

в гугле или яндексе при вводе текста выводятся подсказки 11.JPG
такое как то возможно сделать в дельфи?
мне нужно чтоб при вводе фамилии в поле edit или richedit или что нибудь другое выподал такой же список из фамилий которыйе находятся в бд и была возможность кликнуть на нужную и она вставала в поле.
пробовал погуглить но он меня не понимает ( или я неправильно вопрос формулирую.
подскажите пожалуйста.

Последний раз редактировалось Seva2011; 05.01.2012 в 19:50.
Seva2011 вне форума Ответить с цитированием
Старый 05.01.2012, 20:21   #2
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Если в RichEdit то я бы в событие onKeyPress добавил бы такой код:
вводимая строка в буферную переменную (bufer)
через SQL (like) из базы вылавливал бы результаты
очищал бы RichEdit
в первую строку писал бы результат из bufer
далее выводил бы всё, что вернулось SQL запросом с "like"
поставить указатель (курсор) на прежнюю позицию... (в конец первой строки)
Если всё это через Edit, то по такому же алгоритму можно выводить только в ListBox (например), плюс передвигать указатель в поле Edit не требуется)))

Последний раз редактировалось Dexes; 05.01.2012 в 20:34.
Dexes вне форума Ответить с цитированием
Старый 05.01.2012, 21:00   #3
Seva2011
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 31
По умолчанию

я пробовал событие onKeyPress не получилось. к примеру- нужно ввести фамилию "Иванов" я нажимаю букву "И" сразу выдает фамилию которая первая в бд "Ивашкевич" нажимаю "в" все удаляется и выпадает фамилия "Васин"

вот код
Цитата:
RichEdit1.Clear;
ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('SELECT *');
ADOQuery1.SQL.Add('FROM Klients');
ADOQuery1.SQL.Add('WHERE Фамилия like'+'"'+RichEdit1.Text+'%"');
ADOQuery1.Open;

RichEdit1.Text:=ADOQuery1.FieldByNa me('Фамилия').AsString;
RichEdit2.Text:=ADOQuery1.FieldByNa me('Адрес').AsString;
RichEdit3.Text:=ADOQuery1.FieldByNa me('Телефон').AsString;
вот сам вид программки
2.JPG
Seva2011 вне форума Ответить с цитированием
Старый 05.01.2012, 21:40   #4
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Отработай сам sql-запрос, выводи его в какой-нибудь Edit.
Он у тебя должен быть
1) Select * from Klients where Фамилия like "И%"
2) Select * from Klients where Фамилия like "Ив%"
3) Select * from Klients where Фамилия like "Ива%"
...итд
Засылай не RichEdit1.Text (в этом св-ве полностью весь текст из RE1, а тебе нужна только первая строка), засылай RichEdit1.Lines[0] (так просто надежней будет).
И у тебя в самом начале RichEdit1.Clear; прописан, поэтому запрос всего скорей выглядит вот так:
Код:
SELECT *
FROM Klients
WHERE Фамилия like"key%"
Где key - нажатая клавиша.
(отработай запрос, что именно у тебя запрашивается из базы и в каком виде =))

Последний раз редактировалось Dexes; 05.01.2012 в 22:11. Причина: Забыл про "key"
Dexes вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить область на странице вhtml или как картинку или в pdf ? xxxsas PHP 0 10.12.2011 12:02
Как обойти 503 в гугле при попытке многократно скачивать содержимое страницы dkdkdk Работа с сетью в Delphi 2 14.01.2010 12:16
нету в гугле и на форуме(очень просто) IvaniuS БД в Delphi 10 05.04.2009 16:37
Искать в гугле и выбирать расширение домена(.by,.ru,.cz....) Ozerich Свободное общение 8 29.08.2008 23:31