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

Вниз

Как быстрее вычислить поле?   Найти похожие ветки 

 
Котяра ©   (2003-07-14 19:26) [0]

Доброго времени суток, уважаемые мастера!

Ситуация такова: есть три таблицы
1) D_TYPES (ID,OWNER_ID,NAME...) - дерево групп техники
2) D_DEVICES (ID, D_TYPES_ID, NAME, TNAME_SHOW (логическое поле)...) - справочник техники.
3) EQ_LIST - (ID, D_DEVICES_ID, ....). - Перечень (основная база) техники.
Требуется в таблице EQ_LIST иметь полное наименование из справочника В_DEVICES по полю D_DEVICES_ID. Но! Это наименование скаладывается по принципу: Если поле TNAME_SHOW = 1 то FULL_NAME = D_TYPES.NAME + " " + В_DEVICES.NAME, если 0, то FULL_NAME = В_DEVICES.NAME. Вопрос: как быстрее обработать это дело в OnCalcFields.

1 способ. В таблице D_DEVICES созается lookup поле D_TYPES_NAME, вычисляемое поле FULL_NAME, вычисление производится в OnCalcFields таблицы D_DEVICES. В основной базе наименования отображаются как lookup из этого вычисленного поля D_DEVICES.

2 способ. В таблице D_DEVICES созается lookup поле D_TYPES_NAME, в таблице EQ_LIST - lookup поля D_DEVICES_NAME, D_TYPES_NAME; вычисляемое поле FULL_NAME, вычисление производится в OnCalcFields таблицы EQ_LIST.

Какой из этих способов будет работать быстрее? Или может быть есть еще способы? Заранее спасибо за помощь!

Разживин Александр aka Котяра.


 
MsGuns ©   (2003-07-14 20:19) [1]

А вот есть 3-й способ:

В запросе выводятся оба поля. Например, как FULLN1 и FULLN2.
В контрол (колонку грида) помещается поле FULLN1, на который вешаем обработчик OnGetText:

if TimeShow then Text := FieldByName(FULLN1).AsString
else Text := FieldByName(FULLN2).AsString

ИМХО, это будет работать быстрее. Хотя бы потому, что возникать это событие будет куда реже, чем OnCalcFields




 
Котяра ©   (2003-07-14 21:45) [2]

Хорошая идея! Спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
6-10322
nemec
2003-05-27 21:18
2003.08.04
Сообщения в WebBrowser


1-10208
Prov
2003-07-22 09:21
2003.08.04
Фон едита и цвет текста


14-10421
Vlad Oshin
2003-07-17 15:50
2003.08.04
О законности


8-10312
chyaynik
2003-04-13 16:58
2003.08.04
Текст на картинке


4-10515
grusty
2003-06-02 19:53
2003.08.04
Состояние принтера...