Главная страница
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.021 c
1-10218
sdasase
2003-07-20 17:51
2003.08.04
Как сделать чтобы форма была поверх окон,но не модальна?


1-10174
Руслан
2003-07-20 11:28
2003.08.04
Компонент UpDown


1-10293
Nick2000
2003-07-22 11:04
2003.08.04
Как добавить текст к изображению.


3-10143
AME
2003-07-15 11:36
2003.08.04
Adaptive Server Anywhere Server Enumeration


1-10215
FRT
2003-07-09 16:27
2003.08.04
Memo