Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 06.06.2018, 00:43   #1
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
Восклицание Фильтрация по диапазону через ADOQuery

Помогите пожалуйста, сроки на программу горят, нужна фильтрация по диапазону через ADOQuery
Вот код
Form1->ADOQuery1->Close();
Form1->ADOQuery1->SQL->Clear();
Form1->ADOQuery1->SQL->Add("Select * from Дома; WHERE Квадратура LIKE'"+RzEdit2->Text+"' and '"+RzEdit11->Text+"'");
Form1->ADOQuery1->Open();

При фильтрации выдает только первое введенное значение, помогите с кодом пожалуйста
Rusya15937 вне форума   Ответить с цитированием
Старый 06.06.2018, 00:57   #2
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,233
Репутация: 1231
По умолчанию

1. Поскольку у Вас используется AND - поиск происходит по соответствию двум введённым значениям, а не по диапазону между ними

2. LIKE применим только к строкам для поиска по подстроке, а квадратура у Вас какого типа в базе?

3. Для поиска по числовому диапазону (в том числе и диапазону дат) используется BETWEEN
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 06.06.2018, 06:28   #3
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
По умолчанию

А что вместо and использовать?
Rusya15937 вне форума   Ответить с цитированием
Старый 06.06.2018, 06:32   #4
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
По умолчанию

А все, с этим разобрался
Еще такой вопрос, можно ли делать фильтрацию, по сделанной фильтрации?
Rusya15937 вне форума   Ответить с цитированием
Старый 06.06.2018, 06:38   #5
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
По умолчанию

Если да, то как правильно построить код, если можете, покажите код
Rusya15937 вне форума   Ответить с цитированием
Старый 06.06.2018, 08:10   #6
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,233
Репутация: 1231
По умолчанию

Пример:

Код:

SELECT A, B, C FROM 
(SELECT A, B, C FROM TABLE WHERE A BETWEEN 1 AND 5)
WHERE B BETWEEN 2 AND 3

__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 06.06.2018, 09:16   #7
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
По умолчанию

A и B понятно, а C что такое?
Rusya15937 вне форума   Ответить с цитированием
Старый 06.06.2018, 09:39   #8
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,233
Репутация: 1231
По умолчанию

Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
A и B понятно, а C что такое?
Названия полей. Можно было с таким же успехом написать FIELD1, FIELD2, FIELD3 - суть примера не в А, Б, Ц
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 06.06.2018, 10:10   #9
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,950
Репутация: 6285
По умолчанию

А можно и просто без вложенности

Код:

SELECT A, B, C 
  FROM TABLE 
  WHERE A BETWEEN 1 AND 5 AND 
        B BETWEEN 2 AND 3

__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 06.06.2018, 13:56   #10
Rusya15937
Новичок
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 13
Репутация: 10
По умолчанию

Хорошо, спасибо
еще такой вопрос
можно организовать это все так, чтобы двойная фильтрация происходила только по желанию пользователь, например он в диапазон вбивает квадратуру, фильтрация выводит результат, и он только потом хочет провести фильтрацию по другому полю
по выданному результату
Rusya15937 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Фильтрация по диапазону дат. Droz Помощь студентам 4 08.04.2016 17:54
Фильтрация в ADOQuery Janger Общие вопросы Delphi 6 13.08.2015 12:59
Фильтрация по диапазону xsaroo БД в Delphi 4 05.06.2013 06:01
Фильтрация данных по диапазону даты? sctr84 БД в Delphi 2 05.03.2012 08:55
Фильтрация по диапазону. D.O.G БД в Delphi 12 18.08.2010 10:02


00:11.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru