и еще раз о фильтрах...

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

и еще раз о фильтрах...

Сообщение SSTA »

Здравствуйте. 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 ! 😎
Apron63
Новичок
Сообщения: 14
Зарегистрирован: 21 Октябрь 2007, 16:42
Откуда: Самара

Re: и еще раз о фильтрах...

Сообщение Apron63 »

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