Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2018, 13:09   #11
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

я уже пытался сделать так, но когда осуществляется вторая фильтрация то Grid показывается пустым
Rusya15937 вне форума Ответить с цитированием
Старый 06.06.2018, 13:16   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
я уже пытался сделать так, но когда осуществляется вторая фильтрация то Grid показывается пустым
одно из двух - либо нет записей, которые попадают под все фильтры,
либо неверно написан код.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.06.2018, 18:19   #13
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

там код на два button и он идентичен, может там Query open лишние?
или Close, или Clear
Rusya15937 вне форума Ответить с цитированием
Старый 06.06.2018, 19:28   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
Там код на два button и он идентичен
идентичен чему?


Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
может там Query open лишние?
может. Мне отсюда не видно.


Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
или Close, или Clear
а это тут при чём?!


Вы покажите свой код, расскажите, что он должен делать, тогда и поговорим более предметно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.06.2018, 21:22   #15
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

Фильтрация диапазона на Квадратуру:


Код:
void __fastcall TForm1::RzBitBtn11Click(TObject *Sender)
{
    Form1->ADOQuery1->Close();
    Form1->ADOQuery1->SQL->Clear();
    Form1->ADOQuery1->SQL->Add("Select * from Дома WHERE  Квадратура BETWEEN'"+RzEdit2->Text+"' and '"+RzEdit11->Text+"'");
    Form1->ADOQuery1->Open();
}
//---------------------------------------------------------------------------
Фильтрация диапазона на Комнаты:

Код:
void __fastcall TForm1::RzBitBtn12Click(TObject *Sender)
{
    Form1->ADOQuery1->Close();
    Form1->ADOQuery1->SQL->Clear();
    Form1->ADOQuery1->SQL->Add("Select * from Дома WHERE  Комнаты BETWEEN'"+RzEdit2->Text+"' and '"+RzEdit11->Text+"'");
    Form1->ADOQuery1->Open();
}
нужно после первой фильтрации производилась вторая, но вторая фильтрация должна выполняться по итогу первой фильтрации


_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 07.06.2018 в 07:59.
Rusya15937 вне форума Ответить с цитированием
Старый 06.06.2018, 21:34   #16
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

и вот выдает ошибку, видимо в апострофах запутался, но найти не могу, помогите пожалуйста

void __fastcall TForm1::RzBitBtn11Click(TObject *Sender)
{
Form1->ADOQuery1->Close();
Form1->ADOQuery1->SQL->Clear();
Form1->ADOQuery1->SQL->Add("Select Квадратура, Комнаты from Дома WHERE Квадратура BETWEEN'"+RzEdit2->Text+"' and '"+RzEdit11->Text+"' and WHERE Комнаты BETWEEN '"+RzEdit12->Text+"' and '"+RzEdit13->Text+"'");
Form1->ADOQuery1->Open();
}
Изображения
Тип файла: png Error.png (20.5 Кб, 125 просмотров)
Rusya15937 вне форума Ответить с цитированием
Старый 06.06.2018, 22:00   #17
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

1. Пробел после BETWEEN поставьте

2. and WHERE - тут только and должен быть

3. Если Вам нужно фильтровать набор данных на форме - можно сделать так:

а) отобразить в элементе формы набор данных, полученных селектом
б) применить к этому набору фильтр, который задаётся в ADOQuery в свойстве Filter. Включается/отключается фильтр значением свойства Filtered. Синтаксис для строки фильтра - тот же SQL (та часть, которая пишется после WHERE, то есть условие отбора)
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 06.06.2018 в 22:04.
Sciv вне форума Ответить с цитированием
Старый 08.06.2018, 08:24   #18
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

а все, только дошло
Только не пойму что с кодом не так

Код:
Цитата:
void __fastcall TForm1::RzBitBtn12Click(TObject *Sender) { ADOQuery1->Filtered=false; ADOQuery1->Filter="Материал"+RzEdit12->Text; ADOQuery1->Filtered=true; } //---------------------------------------------------------------------------


только выдает эту ошибку
Изображения
Тип файла: png 001.png (12.1 Кб, 135 просмотров)
Rusya15937 вне форума Ответить с цитированием
Старый 08.06.2018, 08:26   #19
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от Rusya15937 Посмотреть сообщение
а все, только дошло
Только не пойму что с кодом не так
Вы знак "равно" не поставили

Код:
"Материал="+RzEdit12->Text;
либо так, если у Вас поле в БД строковое

Код:
"Материал="+QuotedStr(RzEdit12->Text);
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 11.06.2018, 10:44   #20
Rusya15937
Пользователь
 
Регистрация: 05.06.2018
Сообщений: 13
По умолчанию

Спасибо большое
У Вас нет кода на сортировку в С++?
чтобы по нажатию на название поля оно сортировала по алфавиту, от А до Я и на оборот, а так же по возрастанию и убыванию в числах
есть код на Delphi
Код:
Цитата:
procedure TForm2.RzDBGrid20TitleClick(Column: TColumn); Var f:string; begin if ADOQuery13.FieldByName(Column.FieldName).Tag=0then begin f := ' ASC'; ADOQuery13.FieldByName(Column.FieldName).Tag := 1; end else begin f := ' DESC'; ADOQuery13.FieldByName(Column.FieldName).Tag := 0; end; ADOQuery13.Sort:=Column.FieldName + f; end;
Rusya15937 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Фильтрация по диапазону дат. Droz Помощь студентам 4 08.04.2016 16:54
Фильтрация в ADOQuery Janger Общие вопросы Delphi 6 13.08.2015 11: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