Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

Обновление 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
1-1120118956
Андрей_СК
2005-06-30 12:09
2005.07.18
Прикрепление одной формы к другой


5-1090879946
Victor!
2004-07-27 02:12
2005.07.18
Компонент могргает при перетаскивании


1-1120393211
kyro
2005-07-03 16:20
2005.07.18
События на клавиатуру


3-1113435350
IvanVL
2005-04-14 03:35
2005.07.18
Ошибка чтения библиотеки при подключении к MySQL через DBExpress


1-1119964584
Jolik
2005-06-28 17:16
2005.07.18
Проблема с реестром...