Equate и фильтр бровса

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Ольга

Equate и фильтр бровса

Сообщение Ольга »

Как передать константу Еconst, заданную с помощью Equate(1), в фильтр бровса? Пишет , что Еconst не забиндована...А биндовать можно только переменные, имена функций и группы. Использование BINDEXPRESS тоже не помогает.

АВС , Cee 6.3
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Re: Equate и фильтр бровса

Сообщение Игорь Столяров »

Ольга писал(а):Как передать константу Еconst, заданную с помощью Equate(1), в фильтр бровса? Пишет , что Еconst не забиндована...А биндовать можно только переменные, имена функций и группы. Использование BINDEXPRESS тоже не помогает.

АВС , Cee 6.3
Создать переменную VarЕconst, присвоить ей значение Еconst, ее уже забиндить и передать в фильтр Browse ?
Ольга

Сообщение Ольга »

Спасибо, Игорь:) т.е. надо выкручиваться...не очень удобно. Странно вообще-то почему такие константы не принимаются прямо.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7498
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сообщение Игорь Столяров »

Нет - как раз с этим все просто.
Предопределенные константы определяются на этапе компиляции (т.е. сборке приложения) и не могут быть изменены (переопределены) в процессе выполнения программы. Т.е. в готовом приложении констатны уже заменены на их значения компилятором. Фильтр - это некая символьная строка передаваемая драйверу БД - соответственно в этой строке могут быть переменные или функции "привязанные" к конкретным адресам с помощью BIND. А вот замену меток констант на значения в символьной строке фильтра компилятор не выполняет, что наверно правильно. Вот и все. :)
Ответить