Здравствуйте уважаемые читатели, Айтиста.
При работе с разными БД, часто возникает необходимость поиска данных, но не всегда нужно делать скрытие информации, например при поиске клиентов. Представьте такую ситуацию, у нас данные отображаются при помощи запроса Select * from Clients. Так мы отображаем всех клиентов, можно сделать запрос, например Select * from Clients where familiya=’Иванов’, что отобразит только Ивановых, можно так же добавить имя, отчество в сам запрос или сделать сортировку.
Но при таком подходе все остальные клиенты скрываются и нужно для их отображения либо писать условие в полях поиска мол если поле пусто то делать стандартный запрос, или же делать дополнительную кнопку, что так же не всегда удобно.
Но к чему вся эта статья, если нет другого пути, и он как раз есть.
Создаём новую форму, подключаемся к БД и так далее, всё стандартно =)
Далее что нам потребуется. компонент adotable на котором завязан ДБГрид, и компонент Edit который и будет служить полем поиска.
Искать мы будем по фамилии.
Представим что у нас есть таблица клиентов, как и было описано ранее, кликнем 2 раза на компоненте Edit, и в окне редактора кода впишем ADOTable1.Locate(‘Familiya’, Edit1.Text, [loPartialKey])
получится примерно следующее:
procedure TFormClients.Edit1Change(Sender: TObject);
begin
ADOTable1.Locate(‘Familiya’, Edit1.Text, [loPartialKey])
end;
Этот код будет переводить курсор на строку с первым найденным введённым текстом.
Вот собственно и всё, ничего лишнего, но в случаях когда всё таки нужно использовать скрытие остальной информации, как и раньше придётся использовать запросы.