Страница 1 из 1
Как гарантированно обновить очередь броуза?
Добавлено: 22 Январь 2014, 10:03
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 драйвера?
Re: Как гарантированно обновить очередь броуза?
Добавлено: 22 Январь 2014, 19:28
Губин Игорь
POST(Event:GainFocus)
Если это не глюк драйвера, то после такого лома обновится всё.
Re: Как гарантированно обновить очередь броуза?
Добавлено: 23 Январь 2014, 11:00
kreator
POST(Event:GainFocus) не сработал. Что-то склоняюсь я к проблемам с FireBird. Были и есть какие-то странности, не особо критичные, которые обходятся некими путями. Но вот здесь как-то всё явно и неприятно, броуз маленький, ручного кода почти нет, а проблема на лицо. С Firebird'ом никто не работал, с такими подводными камнями не сталкивались?
Re: Как гарантированно обновить очередь броуза?
Добавлено: 23 Январь 2014, 11:29
morkovin
Как будто бы значение берется из какого-то буфера
Значит, смотри управление кэшированием в FB
Re: Как гарантированно обновить очередь броуза?
Добавлено: 23 Январь 2014, 11:44
kreator
Я - чайник. Разобрался. Назначение prop:Name происходит в методе Init, а потом изменения в локальной переменной никакой реакции не дают. Получается закладкой "SQL Advanced" нужно пользоваться аккуратно и внимательно. А где посмотреть кэширование FB и что кэширование может дать? Потому что есть всё же какие-то непонятки с FB, по моему ощущению лежащие вне Clarion'а.
Re: Как гарантированно обновить очередь броуза?
Добавлено: 24 Январь 2014, 12:20
artgkx
А попробуй ResetFromFile, потому что условие меняется в запросе.
Re: Как гарантированно обновить очередь броуза?
Добавлено: 24 Январь 2014, 14:04
kreator
ResetFromFile не вызывает Init. А моя проблема (prop:Name) сидит в методе Init. Из закладки "SQL Advanced" сгенерированный текст попадает в метод Init, и, наверно, это концептуально неправильно, потому что запросы могут быть зависимыми от локальных переменных, как у меня.
Re: Как гарантированно обновить очередь броуза?
Добавлено: 25 Январь 2014, 17:41
artgkx
Посмотри "PROP:SQLFilter" пост, там тоже локальные переменные.