Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизПоиск в БД Найти похожие ветки
← →
Golik (2006-10-17 20:11) [0]Вечер Добрый !
только не пинайте меня за такой вопрос !
есть БД Access, с которой форма связанна через ADO,база содержит список квартир, поля в ней такие:
-Этаж,
-Кол-во комнат,
-Общая площадь,
-Жил.Площадь,
-Кухня,
-Район города,
-Состояние
-планировка.
---------------------------------------------------------------------------------------
есть форма "поиска" на которой расположенны CheckBox(ы):
1 комнатная,2-х комнатная,и т.д.
и еще Edit(ы): Общ.пл ("от" и "до"),Жил.Пл ("от" и "до"),Кухня ("от" и "до"),Этаж("от" и "до").
Например: Звонит мне клиент который хочет купить квартиру и мне по телефону диктует нужные ему параметры квартиры [B]Общ.пл ("от" и "до"),Жил.Пл ("от" и "до"),Кухня ("от" и "до"),Этаж("от" и "до")[/B], я все это ввожу в поля ввода,указываю какие мне надо CheckBox(ы): 1,2,3 комнатную или же неважно(выбираю все).
как организовать поиск немогу сообразить с чего начать ?
SQL - запрос с параметрами так ?
ну а как определить какие параметры я указал а какие не надо учитывать ?
может кто-нибудь стоящее подсказать ?
← →
Ketmar © (2006-10-17 20:24) [1]начать с изучения SQL, например.
← →
Golik (2006-10-17 20:27) [2]это понятно что надо импользовать SQL запрос ! а вот как параметры туда и какие передать ?
← →
Palladin © (2006-10-17 20:32) [3]
> как параметры туда
можно конкатенацией строк, можно используя синтаксис параметров ADO
> какие передать
ну как какие - правильные, нужные - какие они еще там бывают...
← →
Loginov Dmitry © (2006-10-17 20:37) [4]типа:
with TAdoQuery.Create(nil) do
try
....
SQL.Text :=
"SELECT * FROM Table T"#13#10+
"WHERE T.RoomCnt = :RoomCnt AND"#13#10+
" T.CommonArea BETWEEN :LoArea AND :HiArea";
ParamByName("RoomCnt").AsInteger := RoomCnt;
ParamByName("LoArea").AsFloat := LoArea;
ParamByName("HiArea").AsFloat := HiArea;
Open;
....
finally
Free;
end;
это если такое прокатывает в ADO
← →
Chort © (2006-10-17 20:46) [5]сделай лучше фильтр.
← →
saxon (2006-10-17 20:55) [6]
> Chort © (17.10.06 20:46) [5]
Чем же фильтр лучьше?
← →
Desdechado © (2006-10-17 20:58) [7]Фокус в формировании текста запроса "налету". С параметрами, естественно.
← →
saxon (2006-10-17 21:05) [8]
> Desdechado © (17.10.06 20:58) [7]
можно и не налету, - вызывать запрос из Access. > С параметрами, естественно.
← →
Chort © (2006-10-17 22:04) [9]
> Чем же фильтр лучьше?
чтоб убрать ненужную инфу с таблицы. Воспользоваться несколькими фильтрами. хотя и поиск будет нормальный(если его сделать). Только вот Фильтр быстрее будет написать.
← →
saxon (2006-10-17 22:17) [10]
> Chort © (17.10.06 22:04) [9]
Что Вы понимаете под "убрать ненужную инфу с таблицы", ну и почему это - "Только вот Фильтр быстрее будет написать"?
Может мы про разные фильтры говорим/думаем ... ?
Если имееться ввиду тот фильтр - который на клиенте (я как раз про него), то подумайте, зачем тащить из базы надцать миллионов записей, если ни одна не удовлетворяет условиям клиента (в смысле потенциального покупателя/нанимателя - в рамках описанной задачи)? Иначе поясните.
Про то что быстее написать - так мне кажеться - одинаково быстро (медленно).
← →
Chort © (2006-10-17 23:22) [11]
> Может мы про разные фильтры говорим/думаем ... ?
возможно.
> Про то что быстее написать - так мне кажеться - одинаково
> быстро (медленно).
да вроде как все быстро решается. Фильтруем по условию(можно сразу два)function TForm1.GetFilterString: string;
begin
result:="";
if DiscsTable.FieldByName("id").AsInteger<>ALL_DISCS_ID then begin
result:="Discs="+ DiscsTable.FieldByName("id").AsString
end;
if (FilterEd.Text<>"") and (ActFilterOn.Checked) then begin
if result<>"" then result:=result+" AND ";
result:=result+"ProductName like " + QuotedStr("%"+FilterEd.Text+"%");
end;
end;
Это так, пример(с моей проги).
Хотя может я и не прав.
← →
MsGuns © (2006-10-18 10:27) [12]1. Приложение сделать как MDI-интерфейс. Для того, чтобы параллельно можно было смотреть результаты сколь угодно многих запросов. Сделать таблицу заявок, куда из отображаемых датасетов помещать выбранные варианты по заявке. Заявки просмотаривать в отдельной форме.
2. Никаких фильтров. Все делается исключительно запросами - из БД выбираются записи по динамически (парметрический или нет - роли особой в данном случае не играет) составленному запросу, затем в датасете сервис поиска и сортировки.
3. Добавить в БД сущности "реэлторы", "заказчики", "клиенты", "расчеты", "обязательства", которые увязать друг с другом, заявками и имеющимся в БД фондом недвижимости.
4. Дополнить это приложение или написать новое для работы с электронной почтой (рассылка, входной контроль и т.д.)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c