Страница 1 из 1

Не обновляется view после модификаций данных

Добавлено: 03 сен 2008, 16:20
PViP
Есть вот такая view, собственно не важно какая

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

create view myUder
as
select *
from uder, grpodr, katpodr
where
((
      GRPODR.nrec   == katpodr.CGRPODR
  and katpodr.nrec  == uder.cexoz
))and
(
      uder.vidud    = 18
   or uder.vidud    = 110
   or uder.vidud    = 183
   or uder.vidud    = 184
   or uder.vidud    = 182
)
order by  Grpodr.name
Order by  Uder.param
;
пробегаю ее _loop - ом при загрузке интерфейсом, данные корректны и соответствуют физическим таблицам

затем меняю поле uder.param средствами support sql, запускаю тотже самый _loop в интерфейсе, а записи в логической табле нисколько не изменились, все по прежнему, support же показывает реальную ситуацию

закрываю интерфейс, открываю его снова. развитие идет по тому же сценарию, измененная запись теперь показывается корректно в моем интерфейсе, а вот как только я что нибудь поменяю в uder и попытаюсь обновить, то логическая табла остается как вкопанная, без изменений
Почему?
Как можно принудительно заставит пересоздать логическую таблицу во время выполнения интерфейса?

Добавлено: 03 сен 2008, 17:48
Max_Fin
RereadRecord

Добавлено: 04 сен 2008, 08:00
PViP
Max_Fin, не помогает , пробовал, ставил прямо перед _loop

Добавлено: 04 сен 2008, 11:42
Masygreen
банально но GetFirst

Добавлено: 04 сен 2008, 14:53
PViP
Masygreen, и ето пробовал! Результатов не дает, только перезапуск интерфейса помогает! Че за дела?

Добавлено: 04 сен 2008, 15:01
m0p3e
По идее надо переформировать View.
Попробуй
ResetBounds(tnUder);
SetBounds(tnUder);

теоритически записи из БД должны перечитаться.

Добавлено: 05 сен 2008, 11:16
Masygreen
Еще как вариант попробовать обойтись без ордеров .. с ними вечно шаманство в VIP.... подберите индексы подходящие и укажите их..
или если база SQL то прямым SQL попробовать можно ..