Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтрация НД [D5, IB6.x]


Страницы:   1 2

Johnmen ©   (2002-01-31 12:24:00) 

Такой вот глюк при работе с IBDataSet : ставлю фильтр Filtered:=True; Filter:=<....>; и ничего не происходит ! Это я глючу или IBDataSet ? Кто сталкивался - отзовитесь !!!


Mikhail   (2002-01-31 19:47:00) [21]

А не можно ли по-подробнее про FIBPlus начинающему?
Где он есть? Премного влагодарен.


Fareader   (2002-01-31 18:43:00) [22]

Я имел ввиду скорость фильтра и локейта, а все остальное в FIBPlus на высоте. И я заметил такой глюк BDE - если обновлять большое (6000 и более записей), то где-то после 3000 записи начинают обновляться очень тупо, а если делать Commit - то вообще мрак...


Johnmen   (2002-01-31 17:03:00) [23]

>Fareader © : не сравнивал, но знаю, что в BDE фильтрация - самая сильная сторона.
А если со скоростями, как ты говоришь, то это удручает8o(


Fareader   (2002-01-31 16:45:00) [24]

Видишь ли в чем дело, я сам порбовал перейти с BDE на IBX, но скорость работы, в том числе фильтра и локейт ну никак, поэтому пришлось переходиь на FIBPlus, там побыстрее, но все равно до скорости BDE не дотягивает :(


Johnmen   (2002-01-31 15:27:00) [25]

>Fareader © : спасибо, что не поленился столько нашлепать, но как пользоваться OnFilterRecord я знаю :)))))
просто надо иметь в виду, что внутренний механизм фильтрации НД в случае Filter:=<...> и OnFilterRecord несколько разный,
в связи с чем OnFilterRecord намного тормознутейFilter:=<...> ;o)
но раз в TIBDataSet облом с Filter:=<...>, то придется OnFilterRecord...


Fareader   (2002-01-31 14:53:00) [26]

Можешь в этом событии сделать кучу возможных фильтров через кейс.
Я так сделал

case state_nak of
1:dataset.filtered:=false;
2:Accept := (DataSet["пап"]=-1) or (DataSet["ап"]=1);
3:Accept := DataSet["апа"]=2;
4:Accept := DataSet["апа"]=3;
5:Accept := DataSet["апа"]=4;
6:Accept := (DataSet["апа"]=4) or (DataSet["апа"]=5);
7:Accept := DataSet["апа"]=s_drv_query.fieldbyname("рр").asinteger;
8:Accept := DataSet["рр"]=strtoint(F_G_Form.edit1.text);
9:Accept := DataSet["апарп"]=strtoint(F_G_Form.edit2.text);
10:Accept := (DataSet["апрп"]=strtoint(F_G_Form.edit1.text)) and (DataSet["парп"]=strtoint(F_G_Form.edit2.text));
end;

сделал глобальную переменную state_nak и перед установкой фильтра ставлю ее в нужное значение
может некрасиво, но работает ;)


Johnmen   (2002-01-31 14:00:00) [27]

>Alexander : обязательно перейду (давно хочу) на FIBPlus,
просто сейчас совсем нет времени - добиваю проект, где используется IBX [Джефф Оверкэш >:((( ]...
еще раз попробую OnFilterRecord...еще раз спасибо.


Alexandr   (2002-01-31 13:51:00) [28]

так, как тебе Fareader и надо фильтрацию делать.
Если тебе конечно нужна фильтрация на клиенте, а не на сервере.
Это универсальный способ и он везде работает.

А Джефф Оверкэш это разработчик IBX - это как раз те компонеты, которыми ты пользуешься.

А вообще, мой тебе совет- используй лучше IBObjects или FIBPlus, чтобы потом не пожалеть


Johnmen   (2002-01-31 13:40:00) [29]

>Alexandr : я так и предполагал...спасибо
а кто это - Джефф Оверкэш ?
>Fareader : так тоже делал, но там свои проблемы...спасибо


Alexandr   (2002-01-31 12:44:00) [30]

свойство Filter это просто так, для совместимости (????), туда можно хоть чего писать (хоть Джефф Оверкэш дурак)


Fareader   (2002-01-31 12:37:00) [31]

У них фильтры ставятся в событии OnFilterRecord таким макаром:

Accept := DataSet["апап"]=2;

т.те, ставиш фильтр Filtered:=True, а в Filter ничего не пишешь


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо