Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и базы данных
Войти
Регистрация
Восстановить пароль
 
 
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
#1

Фильтрация данных в DBGrid - Delphi БД

15.04.2016, 11:51. Просмотров 1327. Ответов 26
Метки нет (Все метки)

Здравствуйте.Нуждаюсь в помощи.
Имеется БД Access которая связана с Delphi при помощи ADOTable1 .
Имеется код
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm3.Edit5Change(Sender: TObject);
 
begin 
if Length(Edit5.Text) > 0 then
begin 
ADOTable1.Filtered:=false; 
ADOTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit5.Text + '%' + #39; 
ADOTable1.Filtered:=true; 
end
else ADOTable1.Filtered:=false;
end;
Допустим вы выбрали в Combobox "Влажность" в Edit вспиали 90 и он оставляет нам строки с эти числом
http://www.cyberforum.ru/delphi-database/thread1198723.html
Но как реализовать,что бы он оставлял все строки не только 90,но и большим значением?
Также как сделать,что бы в фильтрации было несколько условий помимо "Влажности" ?
Надеюсь на помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2016, 11:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Фильтрация данных в DBGrid (Delphi БД):

Фильтрация данных в DBGrid
Необходимо оставить в DBGride только поля (их может быть несколько) у которых...

Проверка перед вводом данных и фильтрация DBGrid
Необходимо перед добавлением каких либо данных проверить их на наличие в базе!...

Фильтрация данных в DBGrid через SQL запрос DataSet-a
Delphi 2009, fibplus, firebird. Имеется DataSet c SQL-запросом: SELECT...

Фильтрация и поиск данных мпонента DBGrid при подключении к MySQL server (ODE)
Не могу настроить фильтрацию и поиск данных компонента DBGrid при подключении к...

DBGrid Фильтрация
Имееться такая вот база данных ToolBar1: TToolBar; Edit1: TEdit; ...

26
mss
2631 / 2256 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
15.04.2016, 12:32 #2
Цитата Сообщение от x_X-x3 Посмотреть сообщение
как реализовать,что бы он оставлял все строки не только 90,но и большим значением?
Для начала задуматься над тем почему поле "Влажность" имеет строковый тип, а не целочисленный
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 13:12  [ТС] #3
Цитата Сообщение от mss Посмотреть сообщение
Для начала задуматься над тем почему поле "Влажность" имеет строковый тип, а не целочисленный
У меня тяжелый случай...
к сожалению мне это ничего не дало...
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 13:26 #4
почему не выполнить запрос?
SQL
1
SELECT * FROM TABLE WHERE Влажность>'+Edit1.Text
а потом его модифицировать
SQL
1
SELECT * FROM TABLE WHERE Влажность>'+Edit1.Text+' AND Давление>'+Edit2.Text
0
mss
2631 / 2256 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
15.04.2016, 14:29 #5
Цитата Сообщение от x_X-x3 Посмотреть сообщение
мне это ничего не дало
значение влажности в каких величинах обычно хранится и показывается публике ?
в целых процентах - от 0 до 100

так почему в твоей базе в той самой таблице поле, храящее те самые проценты, у тебя не целочисленное , а строковое ?
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 14:36  [ТС] #6
Цитата Сообщение от qwertehok Посмотреть сообщение
почему не выполнить запрос?
Странно,но почему то не получается.Ни как ошибок,просто не работает код
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 14:37 #7
Цитата Сообщение от x_X-x3 Посмотреть сообщение
просто не работает код
вы это написали зачем?
что бы я погрустил с вами?

хотите что бы помогли - покажите код
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 14:55  [ТС] #8
Цитата Сообщение от qwertehok Посмотреть сообщение
вы это написали зачем?
что бы я погрустил с вами?
хотите что бы помогли - покажите код
Вставлял в свойство SQL компонента ADOQuery
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 15:08 #9
а я должен телепатически догадаться что ты там вставлял?
почему не написать
query.sql.text:='';
query.open

и тд??
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 17:10  [ТС] #10
qwertehok,
решил писать не через свойства и в итоге выдало ошибку "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > +Edit1.Text' "
Delphi
1
2
3
4
5
6
procedure TForm3.FormCreate(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(' SELECT * FROM Видеокамеры WHERE Расстояние действия  >  +Edit1.Text');
ADOQuery1.Active:=True;
end;
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 17:22 #11
потому что сейчас Edit1.Text у тебя текстовая строка
Delphi
1
ADOQuery1.SQL.Add(' SELECT * FROM Видеокамеры WHERE Расстояние действия  >'+Edit1.Text);
Добавлено через 1 минуту
всегда когда есть ошибка в SQL возьми и сделай так

Delphi
1
2
Showmessage(Query1.SQL.Text);
Query1.Active:=True;
и проверь свой запрос
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 17:29  [ТС] #12
qwertehok,
Delphi
1
Showmessage(Query1.SQL.Text);
- полезная вещь
Так и не понял,что нужно сделать с Edit
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 17:34 #13
Цитата Сообщение от x_X-x3 Посмотреть сообщение
ничего не происходит
печально
рекомендую почитать про типы данных

Не по теме:

mss как всегда прав

0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 17:48  [ТС] #14
qwertehok,
Delphi
1
ADOQuery1.SQL.Add( 'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия]  >  + IntToStr(Edit1.Text)');
Пытаюсь преобразовать Edit и пишет "неопределенная функция IntToStr в выражении"
0
qwertehok
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,588
15.04.2016, 17:54 #15
Цитата Сообщение от qwertehok Посмотреть сообщение
печально
рекомендую почитать про типы данных
не бейся об стену - прочитай
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
15.04.2016, 22:46  [ТС] #16
qwertehok, читал...и в итоге не понял как исправить ситуацию
0
Пытливый
1379 / 690 / 249
Регистрация: 29.05.2013
Сообщений: 3,086
15.04.2016, 23:20 #17
Забавная темка. Вы в детстве наверняка рисунки загадки разгадывали - найди 10 отличий. Вот вспомните детство и найдите отличия в этих двух строчках:
Delphi
1
2
ADOQuery1.SQL.Add(' SELECT * FROM Видеокамеры WHERE Расстояние действия  >  +Edit1.Text');
ADOQuery1.SQL.Add(' SELECT * FROM Видеокамеры WHERE Расстояние действия  >'+Edit1.Text);
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
16.04.2016, 08:37  [ТС] #18
Пытливый, К сожалению не помогает,уже давно это испробовано.
В таком случае вылезает ошибка "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > "
0
Пытливый
1379 / 690 / 249
Регистрация: 29.05.2013
Сообщений: 3,086
16.04.2016, 11:03 #19
Вот я тоже невнимательный, у вас там оказывается два косяка, а не один. Надо так:
Delphi
1
ADOQuery1.SQL.Add(' SELECT * FROM Видеокамеры WHERE [Расстояние действия]  >'+Edit1.Text);
И в Edit1.Text ожидается ввод числа, а не буковок.
0
x_X-x3
-27 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 33
16.04.2016, 18:41  [ТС] #20
В итоге с тем не разобрался и решил сделать по другому.Но тут возник вопрос.
Delphi
1
2
3
4
5
6
7
8
procedure TForm7.FormCreate(Sender: TObject);
begin
if  checkbox1.Checked then
begin
ADOQuery1.Filter:='Способ записи='+'По движению''';
ADOQuery1.Active:=True;
end
end;
почему он не фильтрует?
0
16.04.2016, 18:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2016, 18:41
Привет! Вот еще темы с решениями:

Фильтрация в DBGrid
Необходимо осуществить фильтрацию базы данных в DBGrid. Для этого нужно в 3...

Фильтрация в DbGrid
Программа Dephi7. Имеется База Данных созданная в Acces с двумя строками:...

Фильтрация в DBGrid
Нужно отфильтровывать запись по столбцам выбирая критерий фильтра из...

Фильтрация в DBGrid
Уважаемые посетители форума,подскажите пожалуйста,как можно осуществить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru