Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.038 c
1-1119909456
grol
2005-06-28 01:57
2005.07.18
Ошибка после закрытия программы!!!


14-1118399123
kaif
2005-06-10 14:25
2005.07.18
Голосование: Использование нелицензионного софта


11-1102593979
Jon
2004-12-09 15:06
2005.07.18
Using Synapse with KOL


4-1116942470
Sanik
2005-05-24 17:47
2005.07.18
Работа с ключем EUTRON


8-1110725856
Uncle Dix
2005-03-13 17:57
2005.07.18
Считывание сигнала с линейного входа(Line in) звуковой карты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский