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 ? Кто сталкивался - отзовитесь !!!


}{unter   (2002-02-01 18:14:00) [1]

>>Johnmen
Сорри ! Я подозреваю, что могу чего-то и не знать !
Извини !


Johnmen   (2002-02-01 16:32:00) [2]

>}{unter © : я тебя понял, но пременительно к IB через BDE
1. последовательность Filtered Filter не важна
2. фильтрация НД работает исключитель быстро, независимо от индексов


}{unter   (2002-02-01 15:33:00) [3]

>>Johnmen
Почему именно так могу объяснить. При работе с Filter не используются индексы. Если файл большой в длинну работа с Filter разительно отличается от работы с SetRange.
Да я писал и знал, что не в тему просто обратил анимание на постановку вопроса особенно на алгоритм
Filtered := True;
Filter := "<>";
это меня и смутило. Я провёл анологию (если не понял) с таблицами Paradox по применению фильтра если он назначается позже, чем даётся указание на его применение.
И менно по аналогии я заподозрил, что у автора топика именно в этом проблема. Конечно же я не в курске приминима эта шняга к интербейсу или нет, я с ним не работал.


Mikhail   (2002-02-01 14:41:00) [4]

>>Alexandr Спасибо


Fareader   (2002-02-01 14:40:00) [5]

2Alexandr. Так и так с ним работаю. Только гнилыми помидорами и тухлыми яйцами не кидаться и больно не бить за качество кода. Там комментариев нету ;)


Alexandr   (2002-02-01 14:22:00) [6]

давай. В понедельник посмотрю.
Кстати проект делай под Delphi5.


Fareader   (2002-02-01 14:18:00) [7]

Ок. зашлю. Только базу надо порезать, а то бекап на 100 мб не пролезет


Johnmen   (2002-02-01 14:05:00) [8]

>}{unter © : кто сказал, что не создан ?!
извини, но ты слегка не в тему...посмотри предыдущий диалог :)
А фильтры в BDE работают исключительно быстро

...И ещё по аналогии с BDE средства хуже Filter просто не существует!...

Не надо быть таким категоричным !!!!


Alexandr   (2002-02-01 14:02:00) [9]

во-во.
Короче так.
2fareader: Пиши тестовый проект, где у тебя тормозит, что бы в нем все было, и было понятно!!! И зашли мне по мылу. База если большая, то шли не всю, а только то, что надо. Я там посмотрю чего ты понаписал... Delphi 5, база в GBK-в бакупе и сожми Zip.


Johnmen   (2002-02-01 13:56:00) [10]

К слову :
Посмотрел старые проги (с использованием BDE) :
на 1000 записей НД поиск типа <найти вхождение>[pos(substr,str)]
работает прибл. 1 сек. на P-100 c 48MB !!!!!!


Alexandr   (2002-02-01 13:56:00) [11]

1) SetRange только для файловых баз данных.

2) А может фильтр проще на сервере делать в запросе в условии where

3) У меня примерно такие-же компы, и скорость нормальная

4) а detail у этого DataSet нету?


}{unter   (2002-02-01 13:49:00) [12]

Не знаю по аналогии с BDE сначала назначается фильтр, а потом применяется т.е.
Filter :=".....";
Filtered := True
как может, что-то произойти если к моменту запуска фильтра он не задан ?
И ещё по аналогии с BDE средства хуже Filter просто не существует! Медленнее средства просто нет если только не самому пробегать в цикле по рекордам скидывая маркеры в какой нибудь стринг лист.
SetRange - хорошая альтернатива фильтру !


Fareader   (2002-02-01 13:48:00) [13]

433 Celeron 32 RAM Win 98
у меня 800 Celeron 256 RAM Win 2000

в install.txt написано WELCOME TO DEVRACE FIBPLUS 4.5


Alexandr   (2002-02-01 13:39:00) [14]

200 записей и locate долго проходит после fetchall?
странно... У них что-за компьютеры?

А версия FIBPlus 4.4.12? Или более старая? Они там улучшали работу с памятью.

у меня вообще pos(substr,str) часто вместо locate применяется и то скорость нормальная.


Fareader   (2002-02-01 13:34:00) [15]

Я думаю, что НД в 100-200 записей - это не так уж много, к тому же вариантов нет - они нужны все.


Johnmen   (2002-02-01 13:31:00) [16]

>Fareader © : м.б. изменить идеологию - напр. не работать с большими НД ?


Fareader   (2002-02-01 13:27:00) [17]

VER 4.5
FetchAll - помог, но локейт даже после FetchAll - отрабатывает дольше фильтра, приходится накладывать фильтр, а потом снимать. Но даже так скорость локейт у BDE - выше. В общем терпимо, но юзера ропщут - дескать на старой версии проги - быстрее было :(


Alexandr   (2002-02-01 12:54:00) [18]

должно быть одинаково.

Для корректной проверки перед наложением фильтра сделай fetchAll.

А какая у тебя версия FIBPlus?


Fareader   (2002-02-01 11:27:00) [19]

2 Alexandr
Туговато фильтры работают, не в пример BDE, есть идеи по повышению скорости их работы?


Alexandr   (2002-02-01 07:08:00) [20]

2Mikhail: fibplus.com.ua


Страницы:   1 2

Наверх

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