Главная страница
    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.04 c
14-1119623829
WondeRu
2005-06-24 18:37
2005.07.18
Ошибка "Класс TQuery не найден"


11-1103104418
MTsv DN
2004-12-15 12:53
2005.07.18
Не сохраняются размеры ToolBar


14-1119816163
P.N.P.
2005-06-27 00:02
2005.07.18
Запись данных на CD


4-1116665523
Никита
2005-05-21 12:52
2005.07.18
Как получить количество пикселей на дюйм с помощью GetDeviceCap


1-1120138056
Андрей Жук
2005-06-30 17:27
2005.07.18
Соединение ячеек в Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский