Форум » [x]Harbour » BMDBFCDX » Ответить

BMDBFCDX

Dima: Занятный RDD. Позволяет ставить оптимизированные фильтры даже без наличия индексов по фильтруемым полям а так же фильтры типа CUSTOM Есть пара вопросов [pre2] proc main local afilt:={} local nsec:=0 REQUEST BMDBFCDX REQUEST _BMDBF RDDSETDEFAULT( "BMDBFCDX" ) cls USE karta new // 10 полей 700000 записей set optimize on // не понятно назначение сией команды , результат одинаков // при OFF или ON nsec:=seconds() set filter to nomer==1454 go top ? seconds()-nsec // 0.14 секунд , DBFCDX выдал чуть хуже результат да и бровс с ним получился с тормозом. aadd(afilt,1) aadd(afilt,400000) aadd(afilt,700000) nsec:=seconds() BM_DBSETFILTERARRAY(afilt) go top ? seconds()-nsec // 0.0 секунд afilt:={} aadd(afilt,100) aadd(afilt,4000) aadd(afilt,7000) aadd(afilt,8000) aadd(afilt,17000) nsec:=seconds() BM_DBSETFILTERARRAY(afilt) go top ? seconds()-nsec // 0.0 секунд BM_DBSETFILTERARRAYADD(afilt,18000) // добавляем 6 запись ? len(BM_DBGETFILTERARRAY()) // но длина массива не изменилась //странно , возможно не так ее юзаю wait go top browse() // бровс летает close all return nil И не понятно что за зверь такой BM_Turbo() ? BM_Turbo(.t.) ? BM_Turbo(.f.) Вернет .F. в обоих случаях [/pre2]

Ответов - 28, стр: 1 2 All

Pasha: Dima пишет: А собрать уже можно под Harbour 3.0 С этим вопросом разобрался Этот макрос для сборки надо оказывается задавать в командной строке hbmk2: \harbour_30\bin\win\mingw\hbmk2 -env:__BM=yes letodb.hbp \harbour_30\bin\win\mingw\hbmk2 -env:__BM=yes rddleto.hbp

Pasha: Dima пишет: И да если установлен фильтр через LBM_DBSETFILTERARRAY() то снять его обычными командами не получается dbClearFilter() должен снять Но это в сырцах на CVS, В тех, что я вчера прислал, этого еще не было

Dima: Pasha пишет: dbClearFilter() должен снять Понял , спасибо буду завтра разбираться.


Dima: Свежие сырцы слил и все пересобрал. dbClearFilter() фильтр НЕ СНЯЛ

Dima: Dima пишет: dbClearFilter() фильтр НЕ СНЯЛ Паша так что делать то ? :)

Pasha: Причину уже увидел, но исправление выложу позже. Надо и со стороны клиента кое-что реализовать для letodb+bm Заодно сделаю заполнение bitmap-массива для set filter

Dima: Pasha А если я ставлю фильтр вида LBM_DBSETFILTERARRAY({1,590,234,2345,7899,9000,700000}) В этом случае LETO_ISFLTOPTIM() вернет .F. , получается что фильтр ставится на клиенте. По идее должен ставится серверный фильтр или я не прав ?

Pasha: Да, поправлю



полная версия страницы