IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Поиск по базе данных в дельфи (https://www.imho.ws/showthread.php?t=64303)

steelik 15.07.2004 21:33

Поиск по базе данных в дельфи
 
Прошу помочь разобраться с поиском по бд.
Разрабатываю простенькую бд для агенства недвижимости. Выбрал Paradox. Ниже представлена таблица для примера:
Необходимо осуществить поиск сразу по нескольким критериям. Для этого у нас имеется три EditBox.
Задаём параметры для поиска, размер должен быть 170 и место расположение Moscow, жмём на кнопку и получаем результат.

+--------+------------+--------+
| name | location | size |
+--------+------------+--------+
| Peter | Moscow | 170 |
| Mike | Sochi | 150 |
| Kate | Adler | 190 |
+--------+------------+--------+

Есть небольшой опыт работы с SQL.

Не совсем понимаю, как организовать запрос для TQuery, как пробежаться по всем полям, как узнать количество полей таблице и как наконец вывести её, да хотя бы в ту же DBGrid или что посоветуете. Заранее благодарен.

/7y3uK 16.07.2004 00:51

Ищи мануалы по использованию в дельфи технологии ADO , в дельфе закладка в компонентах есть такая - как раз заточка под локальные БД. Есть там такой компонент TADOQuery - это основной инструмент для добавления, изменения, удаления. Для визуализации , т.е. отображения таблиц пользуется DBGrid, ну и там еще тебе понадобится несколько компонентов для коннекта к БД - TADOConnect, и для связи таблицы с запросом TDataControl. Советую почитать (скачать) "Библию Дельфи" на _http://vr-online.ru

ЕЖ 16.07.2004 12:20

По скольку ты решил пользовать 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.