Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > ADOQuery и вычисляемые поля |
Автор: KeyLord 17.12.2008, 10:46 |
Приветствую. Прошу помочь мне с одной проблемкой. есть ADOQuery SELECT COUNT(*) AS kol FROM childrenid WHERE tab_num=:num есть строчка кода в OnCalcFields: VedTableField5.Value:=VedTableField2.AsInteger+VedTableField3.AsInteger-VedTableField4.AsInteger; VedTableField2 - Lookup поле возвращает integer VedTableField3, VedTableField4, VedTableField5 - Calculated поля мне надо в эту формулу подставить значение, которое возвращает запрос (есстественно у каждого поля он вернет разное значение). чтобы получилось что-то вроде этого: VedTableField5.Value:=VedTableField2.AsInteger+VedTableField3.AsInteger-VedTableField4.AsInteger-(ADOQuery.kol.AsInteger*36); как я не пытался всегда возвращается только первый результат (или вообще ничего ![]() так вот при расчете оно во всех строчках подставляет только первое число 2. как мне правильно связать запрос с полями? |
Автор: Frees 17.12.2008, 10:50 |
дак ты считай кол-во не отдельным квери а в запросе VedTable подзапросом |
Автор: KeyLord 17.12.2008, 12:01 |
спасибо. я решил вот так: изменил запрос на SELECT COUNT(*) AS kol, tab_num FROM childrenid GROUP BY tab_num а в таблице создал еще одно невидимое lookup поле, звязанное по tab_num и теперь результат этого запроса существует просто как еще одно поле таблицы, с которым можно спокойно работать. |