Главная страница
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.016 c
7-10465
Yura
2003-05-21 19:29
2003.08.04
Настройка порта


3-10111
Duce
2003-07-09 09:51
2003.08.04
Через чего лучше заходить на MS SQL из Дельфи?


1-10163
TSa
2003-07-12 14:32
2003.08.04
«Востановление» реестра


3-10109
SCORPION ZP
2003-07-13 12:02
2003.08.04
Как в Delphi открыть базу FoxPro?


1-10283
FARc
2003-07-20 07:35
2003.08.04
Структура данных