![]() |
Поиск по базе данных в дельфи
Прошу помочь разобраться с поиском по бд.
Разрабатываю простенькую бд для агенства недвижимости. Выбрал Paradox. Ниже представлена таблица для примера: Необходимо осуществить поиск сразу по нескольким критериям. Для этого у нас имеется три EditBox. Задаём параметры для поиска, размер должен быть 170 и место расположение Moscow, жмём на кнопку и получаем результат. +--------+------------+--------+ | name | location | size | +--------+------------+--------+ | Peter | Moscow | 170 | | Mike | Sochi | 150 | | Kate | Adler | 190 | +--------+------------+--------+ Есть небольшой опыт работы с SQL. Не совсем понимаю, как организовать запрос для TQuery, как пробежаться по всем полям, как узнать количество полей таблице и как наконец вывести её, да хотя бы в ту же DBGrid или что посоветуете. Заранее благодарен. |
Ищи мануалы по использованию в дельфи технологии ADO , в дельфе закладка в компонентах есть такая - как раз заточка под локальные БД. Есть там такой компонент TADOQuery - это основной инструмент для добавления, изменения, удаления. Для визуализации , т.е. отображения таблиц пользуется DBGrid, ну и там еще тебе понадобится несколько компонентов для коннекта к БД - TADOConnect, и для связи таблицы с запросом TDataControl. Советую почитать (скачать) "Библию Дельфи" на _http://vr-online.ru
|
По скольку ты решил пользовать Paradox, то для соединения с БД тебе подойдет либо ADO, либо BDE.
Для отображения всех данных таблицы можно использовать как запрос (TQuery), так и просто таблицу (TTable). Все они наследуются от одного предка (TDataSet). В любом случае ставь еще компонент TDataSource и у его в свойстве DataSet выбирай твой первый компонент. Потом кладешь на форму TDBGrid и в свойстве DataSource ставишь свой компонент TDataSource. Для TQuery и TTable укажи алиас БД в свойстве DatabaseName. Если пользуешь TQuery: в свойство SQL загоняешь свой запрос типа "SELECT * FROM Table", в случае Paradox имя таблицы указывай с расширением (mytable.db). Потом Active = true Если TTable: просто выбираешь имя таблицы в TableName и тоже Active = true У всех наследников TDataSet есть свойство FieldCount - количество полей. На открытом TDataSet RecordCount - количество записей. RecNo - текущая запись. Чтобы пробежаться по всем записям конструкция что-то типа: Table1.First(); while not Table1.Eof do begin chislo := Table1.FieldByName(...).AsInteger; stroka := Table.FieldByName(...).AsString; Table1.Next(); end Для поиска записей по значениям у TDataSet есть метод Locate Там указываешь поле(поля) по каким искать, значение(я) в Variant(или массив Variant'ов) и параметры поиска (напр. различать ли строчные/прописные буквы). В общем всё есть в Help'е... |
| Часовой пояс GMT +4, время: 23:38. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.