Вопрос по связыванию таблиц в Delphi

Статус
Закрыто для дальнейших ответов.

McSimm.Korobov

Пользователь
Пользователь
12 Фев 2005
326
0
0
34
Луганская 4
Предположим есть некоторая таблица. С ней связана по IDшнику другая таблица (с соответствием 1 -> много).

Вопрос: как можно наиболее быстро получить данные из какой-нибудь колонки всех записей 2ой таблицы, с соответствующими ID из первой таблицы, и запихнуть их в вычисляемое поле первой таблицы?


Понятно, что можно просто в OnGetText вычисляемого поля для каждой записи главной таблицы пробегаться по соотв. записям второй таблицы и при завершении сбора инфы просто давайть эту инфу полю. Однако, этот способ какой-то небыстрый получается. Может есть альтернативы? :smile:
 

firetrap

Активный пользователь
Пользователь
9 Фев 2005
988
11
18
а какого типа вычисления?
 

firetrap

Активный пользователь
Пользователь
9 Фев 2005
988
11
18
т.е. если я правильно понял, сейчас ты используешь агрегационную функцию в запросе? например Select Sum(..) .. и всё это медленно работает?

Есть другой вариант: в первой таблице в твоём вычисляемом поле хранишь уже агрегированную величину, т.е. сумму. Таким образом при добавлении(удалении) каждой новой(старой) записи во 2-ю таблицу при необходимости увеличиваешь(уменьшаешь) агрегированное значение в первой таблице на нужную величину.
 

McSimm.Korobov

Пользователь
Пользователь
12 Фев 2005
326
0
0
34
Луганская 4
О нет! Никаких запросов - дана бд, вообще ничего не знающая про sql.

Пробегаться по записям и вправду медленно (даже если отвязать все контролы от датасета).

Хранить значение в первой таблице - хороший вариант. Пожалуй, так как у меня поставлена цель сделать наиболее быстро, так и надо будет сделать.

Спасибо за наиболее подходящее решение.
 
Статус
Закрыто для дальнейших ответов.