Главная страница
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.026 c
3-1118308515
desha
2005-06-09 13:15
2005.07.18
Dll и базы данных.


14-1119399838
vidiv
2005-06-22 04:23
2005.07.18
Преобразование тока DC 12V в DC 9V или 3V


3-1118065913
Андрей (гость)
2005-06-06 17:51
2005.07.18
Создание отчета из DBGrid а


14-1119616196
TUser
2005-06-24 16:29
2005.07.18
Windows = DOS ???


1-1120131813
salexn
2005-06-30 15:43
2005.07.18
Не работает функция SaveKey или что не так делаю?