и еще раз о фильтрах...
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
и еще раз о фильтрах...
Здравствуйте. CW6.3, ABC,Стандартный browse, Range Limit Type = Range Of Values, штатный фильтр CommonFilter()=1 (прототип - (),string) - довольно сложная функция, много чего перебирает, пока выдаёт результат. Проблема в следующем: если возвращаю высчитанное реальное значение (true, false), то очень сильно возрастает время выполнеия (в 8-10 раз) по сравнению с вариантом, когда после всех расчетов из CommonFilter() насильно возвращаю true. То есть, если время, потраченное на вычисления условия фильтрации не существенно, тогда где собственно прячется задержка?
C уважением, Александр Т.
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Re: и еще раз о фильтрах...
скорее всего это шутки оптимизирующего компилятора - он видит, что вычисляй, не вычисляй, всё равно функция вернёт true, ну и не вычисляет ничего.
Но это только предположение.
Но это только предположение.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
Re: и еще раз о фильтрах...
Да, я тоже с этим согласен. Попробуй добавить в алгоритм работы фильтра, например BEEP и посмотреть
(точнее послушать
) работает ли он если функция все равно насильно возвращает TRUE.
(точнее послушать

Make Clarion Great Again ! 
Re: и еще раз о фильтрах...
Есть предложение попробовать трассировку драйвера. Недавно был случай, когда используется и Range Limit и Filter как выяснилось позже одно поле из фильтра попадало в другой (неиспользуемый в данном Browse) ключ, с виду благопристойная комбинация вызывает непонятное дергание по другому ключу, при трассировке просто зайти-выйти из Browsе образовался лог примерно метров на 5. После того как поменял структуру ключей, глюк пропал. Clarion 6.3 ABC.