• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема перестроения индекса представления

  • Автор темы ̸
  • Дата начала
Статус
Закрыто для дальнейших ответов.
̸

̸

Доброе время суток.

Помогите разобраться со следующей ситуацией. Имеется представление, в котором отображаются документы, сгруппированные по категориям "СЕГОДНЯ", "ВЧЕРА" и "ДРУГИЕ".

Вот собственно формула столбца. Так сказать единичный пример :unsure:

dt:=@TextToTime("TODAY");
@If(@Date(dt)=@Date(@Created); "СЕГОДНЯ"; @Date(dt)=@Date(@Adjust(@Created; 0; 0; 1; 0; 0; 0)); "ВЧЕРА"; "ДРУГИЕ")

Проблема заключается в том, что после создания документа - он попадает в категорию "СЕГОДНЯ". После этого над документом не производится никаких действий.

На следующий день документ, остается в категории СЕГОДНЯ, хотя по идее должен переходить в категорию ВЧЕРА. Если ручками обновить представление комбинацией Shift+F9, то документ попадает в нужную категорию.

Решений проблемы существует несколько
1) можно каждый день прокладывать агентом текущую дату в определенное поле и затем использовать его в формуле столбца вместо @TextToTime
2) можно запустить, задачу обновления индекса вьюшек (как долго будет отрабатываться для одной или всех баз мной не опробывано)
3) что то другое может есть еще ))

Но вопрос стоит как сделать правильно. Представления, пляшущие от текущей даты, частенько используются. Но не всегда отображаются корректно (
При использовании @today все работает четко, но очень долго и не эффективно. Так что.... Поделитесь мыслями, кто встречался с такой ситуацией.

Спасибо ;)
 
M

morpheus

я делаю как указанно в п.1
тоесть ночью агентом проставляю дату, чего и Вам советую
 
̸

̸

Morpheus Спасибо за совет. Если других достойных вариантов не будет, буду писать такой агент ) А пока же хотелось бы просто получить как можно больше информации для саморазвития :unsure:
 
A

abbatik

Вот агент:

Код:
Forall v In db.Views
Call v.Refresh ()
End Forall

Если нужно обновлять определенные виды, то можно список видов сделать.

И еще, если данных в базе много, то советую перед этим еще зашедулить compact и fixup этой базы в администраторе, перед выполнением агента.
 
30.05.2006
1 345
12
BIT
0
Мой вариант: ночным агентом "подкладывать" дату не в поля документов, а в ФОРМУЛУ СТОЛБЦА вьюшки!
Т.е. вместо
dt:=@TextToTime("TODAY");
подставлять сегодня что-то вроде
dt:=[15.11.2008];
завтра
dt:=[16.11.2008]; и т.д..
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!