Как гарантированно обновить очередь броуза?

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Как гарантированно обновить очередь броуза?

Сообщение kreator »

Вот столкнулся с такой неприятной штукой. С8.9759 ABC, в качестве сервера - Firebird 2.1. Есть броуз, одно поле очереди броуза вытягивается через prop:Name из запроса:

Код: Выделить всё

( select coalesce(t.id_spr,0) 
  from tabu t 
  where t.id_sotr=a.id_sotr and t.datu=''' & format(LOC:Date,@d10-) & ''' and t.priz is null )
При открытии окна - всё хорошо. При изменении LOC:Date вызываю BRW8.ResetQueue(Reset:Queue) (пробовал BRW8.ResetQueue(Reset:Queue), результат тот же). И вот это поле не меняется. Как будто бы значение берется из какого-то буфера. Можно ли гарантированно дать команду, чтобы данные обновились? Или это очередной баг C8? Или это баг FireBird'а, ODBC драйвера?
We are hard at work… for you. :)
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Как гарантированно обновить очередь броуза?

Сообщение Губин Игорь »

POST(Event:GainFocus)
Если это не глюк драйвера, то после такого лома обновится всё.
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: Как гарантированно обновить очередь броуза?

Сообщение kreator »

POST(Event:GainFocus) не сработал. Что-то склоняюсь я к проблемам с FireBird. Были и есть какие-то странности, не особо критичные, которые обходятся некими путями. Но вот здесь как-то всё явно и неприятно, броуз маленький, ручного кода почти нет, а проблема на лицо. С Firebird'ом никто не работал, с такими подводными камнями не сталкивались?
We are hard at work… for you. :)
Аватара пользователя
morkovin
Ветеран
Сообщения: 935
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 9 раз
Поблагодарили: 4 раза
Контактная информация:

Re: Как гарантированно обновить очередь броуза?

Сообщение morkovin »

Как будто бы значение берется из какого-то буфера
Значит, смотри управление кэшированием в FB
WBR, morkovin
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: Как гарантированно обновить очередь броуза?

Сообщение kreator »

Я - чайник. Разобрался. Назначение prop:Name происходит в методе Init, а потом изменения в локальной переменной никакой реакции не дают. Получается закладкой "SQL Advanced" нужно пользоваться аккуратно и внимательно. А где посмотреть кэширование FB и что кэширование может дать? Потому что есть всё же какие-то непонятки с FB, по моему ощущению лежащие вне Clarion'а.
We are hard at work… for you. :)
artgkx
Бывалый
Сообщения: 58
Зарегистрирован: 25 Декабрь 2010, 12:23

Re: Как гарантированно обновить очередь броуза?

Сообщение artgkx »

А попробуй ResetFromFile, потому что условие меняется в запросе.
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: Как гарантированно обновить очередь броуза?

Сообщение kreator »

ResetFromFile не вызывает Init. А моя проблема (prop:Name) сидит в методе Init. Из закладки "SQL Advanced" сгенерированный текст попадает в метод Init, и, наверно, это концептуально неправильно, потому что запросы могут быть зависимыми от локальных переменных, как у меня.
We are hard at work… for you. :)
artgkx
Бывалый
Сообщения: 58
Зарегистрирован: 25 Декабрь 2010, 12:23

Re: Как гарантированно обновить очередь броуза?

Сообщение artgkx »

Посмотри "PROP:SQLFilter" пост, там тоже локальные переменные.
Ответить