Вопрос № 87959: Здравствуйте уважаемые эксперты!!!
Вы не могли бы подсказать как осуществить поиск по базе данных в Delphi, после ввода каждой буквы, что бы сортировка шла, а не сразу по целому слову, через компонент TQuery, ну или если можно через другой компон...
Вопрос № 87.959
Здравствуйте уважаемые эксперты!!!
Вы не могли бы подсказать как осуществить поиск по базе данных в Delphi, после ввода каждой буквы, что бы сортировка шла, а не сразу по целому слову, через компонент TQuery, ну или если можно через другой компонент, то через другой.....
Заранее спасибо...
Отправлен: 21.05.2007, 21:07
Вопрос задал: Линецкий (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Виктор Пырлик
Здравствуйте, Линецкий!
Это можно реализовать в событии визуального компонента (любого) OnKeyDown
В методе реализовать вызов процедуры любого компанента доступа к данным TTable, TQuery, TADOTable TIBTable и даже процедур – у них у всех есть метод Locate.
Query1.DisableControls;
Query.Active := false;
Query1.SQ.Clear;
Query1.SQL.Add(Format(‘SELECT * FROM MYTABLE WHERE POLE1 LIKE ‘%s%’,[Edit1.Text]));
Query.Active := true;
Query1. EnableControls;
Надо понимать, что это сильно нагружает транспортный поток м/у клиентом и базой, да и сам сервер тоже.
--------- Надо пребывать господа, пребывать! Иначе ничего не получится!
Ответ отправил: Виктор Пырлик (статус: 3-ий класс)
Ответ отправлен: 21.05.2007, 22:26
Отвечает: Химяк Виктор Васильевич
Здравствуйте, Линецкий!
Можно также использовать событие OnChange, ниже кусок работающего кода.
Лучше, на мой взгляд использовать 1 вариант, т.е. функцию Locate, но все зависит от задачи.
procedure TfmMain.Edit3Change(Sender: TObject);
begin
if edit3.Text<>'' then
begin
Table1.IndexName:='';
if length (edit3.Text)=5 then
begin
if not tTable1.Locate('nomerab', edit3.Text,
[loCaseInsensitive, loPartialKey])
then showmessage('search not found');
end;
end;
end;
Ответ отправил: Химяк Виктор Васильевич (статус: 5-ый класс)
Ответ отправлен: 22.05.2007, 01:05
Отправить вопрос экспертам этой рассылки
Приложение (если необходимо):
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.