Форум: "Базы";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизОбновление lookup кэша при автоматическом обновлении НД Найти похожие ветки
← →
Тучудище (2005-06-07 12:14) [0]Hello all!!!
Кратко опишу ситуацию:
Имееться НД, который содержит подстановочные поля, у данных полей включено кэширование значений для подстановки.
При работе с локальными БД (в данном случае paradox) как вам известно имеется следующая особенность, когда один из пользователей добавил новую запись, остальные при листании НД с помощью сетки увидят данную запись(более как автодобавление новых записей это назвать не могу)
Теперь ближе к моей ситуации:
Пользователь А добавил запись с несколькими новыми значениями для подстановочных полей которые он сам же и создал
Пользователь Б просматривая НД обнаружил новую запись но поскольку новые значения для подстановки в кэш не попали то соответсвенно lookup поля будут пустыми
Вид на запись пользователя а:
№ ордера |Дата ордера |ФИО | вид док-та |
1978 |07/06/05 |Иванов И.И. | Нац. паспорт |
Вид на запись пользователя б:
№ ордера |Дата ордера |ФИО | вид док-та |
1978 |07/06/05 | | |
Собственно сам вопрос, каким образом можно отловить появление новых записей в НД таким вот образом.
В качестве нд используется компонент TQuery с RequstLive:=True
← →
Тучудище (2005-06-07 16:03) [1]Блин!
Ладно пойду простым путем варианта родилось в голове 2
1)CachedUpdates(наборов данных много...)
2)RefreshLookupCache в AfterScroll(торомза будут ужастные и не нужно это никому)
3)Отловить событие автообновления НД(можно ли???)
← →
вп (2005-06-07 16:08) [2]
> 3)Отловить событие автообновления НД(можно ли???)
Видел подобное на Королевстве Делфи.. Но точно, где не подскажу.. Помню, что применяется call-back процедуры (вроди)..
← →
Тучудище (2005-06-07 16:21) [3]а жаль, почитать очень хочется по этому поводу.... :-(
даже что то в хелпе ни чего не попадается по данному поводу....
← →
вп (2005-06-07 16:35) [4]
> 2)RefreshLookupCache в AfterScroll(торомза будут ужастные
> и не нужно это никому)
А почему это не делать BeforeRefresh соновного НД ?
← →
Тучудище (2005-06-08 06:54) [5]>А почему это не делать BeforeRefresh соновного НД ?
Да потому, что он не срабатывает на автоматическое обновление, в BeforeRefresh и так стоит обработчик, который следит за актуальностью кэша!
← →
Тучудище (2005-06-09 06:42) [6]Ни одного каммента за 2 суток... кашмар...
← →
ЮЮ © (2005-06-09 09:51) [7]>каким образом можно отловить появление новых записей в НД таким вот образом
procedure TCustomDBGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
...
Value := DrawColumn.Field.DisplayText;
...
function TField.GetDisplayText: string;
begin
Result := "";
if Assigned(FOnGetText) then
FOnGetText(Self, Result, True) else
GetText(Result, True);
end;
Поэтому, достаточо в OnGetText
Text := TFieldCrack(Sender).GetText(Result, True);
if Text = "" then //следует обновить
← →
Тучудище (2005-06-09 10:00) [8]готично.... так оно сейчас и работает... :-( блин... ну ладно оставлю как есть....
← →
ЮЮ © (2005-06-09 10:05) [9]>так оно сейчас и работает... :-( блин
И чем не нравится?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c