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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2009, 22:09   #1
Zerofill
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 29
Плохо Не работает Filter. Не знаю, что делать...Т_Т

Здравствуйте! у меня такая проблема. необходимо отфильтровать таблицу БД по различным параметрам. (delphi 7, paradox). но при нажатии кнопки "отфильтровать", DBgrid пустеет.. в нем нет ни одной строки.
Код:
procedure TForm12.Button1Click(Sender: TObject);
var f,p1,p2:string;
begin
if (Edit1.Text='') and (Edit2.Text='') then MessageBox(0,'Введите пределы фильтрации','Ошибка',MB_OK)
else begin
      p1:=Edit1.Text;
      p2:=Edit2.Text;
      if radiogroup1.Visible then  begin
      case RadioGroup1.ItemIndex of
      0: f:='Date_placing<='+quotedstr(p1)+' and Date_placing>='+quotedstr(p2);
      1: f:='Date_confirming<='+quotedstr(p1)+' and Date_confirming>='+quotedstr(p2);
      2: f:='Job<='+quotedstr('%'+p1+'%')+' and Job>='+quotedstr('%'+p2+'%');
      3: f:='Salary<='+quotedstr('%'+p1+'%')+' and Salary>='+quotedstr('%'+p2+'%');
      4: f:='Experience<='+quotedstr(p1+'%')+' and Experience>='+quotedstr(p2+'%');
      end;{case}
      dm.Vacancy.Filtered:=true;
      dm.Vacancy.Filter:=f;
      dm.Vacancy.Active:=false;
      dm.Vacancy.active:=true;
      form1.DBGrid2.Refresh; end;........
vacancy - это таблица, кот следует отфильтровать. в radiogroup1 выбираются параметры фильтрации. информацию искала на разных форумах, разные учебники по дельфи смотрела. перепробовала множество вариантов.(и с OnFilterRecord тоже)....результат один - грид ничего мне не показывает. Что делать? Помогите пожалуйста...возможно посоветуете еще какой ресурс?
Zerofill вне форума Ответить с цитированием
Старый 01.06.2009, 10:06   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Код:
end;{case}
      dm.Vacancy.Filtered:=true;
      dm.Vacancy.Filter:=f;
      dm.Vacancy.Active:=false;
      dm.Vacancy.active:=true;
 form1.DBGrid2.Refresh; end;........
из всего этого нужно всего 2 строки, только поменять их местами
Код:
 dm.Vacancy.Filter:=f;    
 dm.Vacancy.Filtered:=true;
потом если поле дататиайм, то нужно формат соблюдать.
и тут код не полностью по моему.

Вы в таких случаях, если не понятно что происходит, лучше на форму мемо добавляйте,
и вместо
Код:
 dm.Vacancy.Filter:=f;    
 dm.Vacancy.Filtered:=true;
пишите
Код:
memo1.text:=f;
если какието действия происходят с string то этого часто хватает чтоб увидеть свои ошибки.

Последний раз редактировалось vovk; 01.06.2009 в 10:14.
vovk вне форума Ответить с цитированием
Старый 02.06.2009, 21:23   #3
Zerofill
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 29
По умолчанию

Спасибо за помощь! все заработало. самая главная ошибка у меня была в самом условии фильтрации. было
Код:
'Date_placing<='+quotedstr(p1)+' and Date_placing>='+quotedstr(p2);
а надо
'Date_placing>='+quotedstr(p1)+' and Date_placing<='+quotedstr(p2);
просто первая часть была "от", а вторая часть после 'and' была с назначением "до"...

и еще я удалила '%'
Zerofill вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делать? Тёма(C@$pEr) Безопасность, Шифрование 3 05.03.2009 09:39
Что делать? mujbIk Общие вопросы C/C++ 6 27.08.2008 12:24
Что делать если не работает CSS в windows? Free-Spirit HTML и CSS 5 26.08.2008 18:05
Не знаю что за ошибка Droid Общие вопросы Delphi 9 24.05.2008 22:18