Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизADOQuery + compute Найти похожие ветки
← →
vic © (2004-08-06 13:39) [0]Вопрос следущий:
В QA и Profiler проверяю следующий запрос:
select raion,sum_kredit
from plats
where zachis_data between "12.07.2004" and "29.07.2004"
order by raion
compute sum(sum_kredit) by raion
compute sum(sum_kredit)
Выдает то, что надо, т.е. например в QA:
raion sum_kredit
---------------------------------------- -------------
a1 NULL
a1 45.0
sum
==============
45.0
raion sum_kredit
---------------------------------------- ---------------
a2 NULL
a2 360.0
a2 720.0
sum
===============
1080.0
...
sum
================
52912.3199999999
т.е. итоги по каждому району, и итог в целом.
В Profiler то же самое.
Но если этот запрос занести в ADOQuery, то в DBGrid отображается только:
raion sum_kredit
---------------------------------------- -------------
a1 NULL
a1 45.0
Если занести:
select raion,sum_kredit
from plats
where zachis_data between "12.07.2004" and "29.07.2004"
order by raion
compute sum(sum_kredit) by raion
то, результат тот же, т.е. для 1 района (?) и без итогов.
Если занести:
select raion,sum_kredit
from plats
where zachis_data between "12.07.2004" and "29.07.2004"
order by raion
compute sum(sum_kredit)
то результат:
raion sum_kredit
---------------------------------------- -------------
a1 NULL
a1 45.0
a2 NULL
a2 360.0
a2 720.0
В чем дело? Почему не отображаются итоговые суммы?
Кстати в MSSQL VIEW с таким запросом именно на compute
ругается. Может синтаксис там другой?
Повторюсь - в QA и Profiler все нормально.
← →
Ega23 © (2004-08-06 13:42) [1]А чего же ты хотел?
The summary values generated by COMPUTE appear as separate result sets in the query results.
← →
vic © (2004-08-06 13:54) [2]>Ega23 © (06.08.04 13:42) [1]
А чего же ты хотел?
The summary values generated by COMPUTE appear as separate result sets in the query results.
А откуда их взять? И есть ли возможность отобразить их в гриде?
← →
Ega23 © (2004-08-06 14:02) [3]Compute из запроса убери. Считай его после открытия запроса.
← →
vic © (2004-08-06 14:10) [4]>Ega23 © (06.08.04 14:02) [3]
>Compute из запроса убери.
Допустим
>Считай его после открытия запроса.
Откуда считать?
← →
Ega23 © (2004-08-06 14:14) [5]ну вот ты открыл запрос, ты же можешь по всем полям пробежать и посчитать сумму.
With SomeDataSet do
begin
DisableControls;
Sum:=0.0;
First;
While not Eof do Sum:=Sum+FieldByName(Твоё_Поле).asFloat;
EnableControls;
end;
← →
vic © (2004-08-06 14:22) [6]>Ega23 © (06.08.04 14:14) [5]
понятненько, я так и думала делать, если не выйдет ничего,
т.е. compute никак не использовать, а жаль...
зы
>А чего же ты хотел?
>ну вот ты открыл запрос ...
Я женского рода вообще-то.
← →
sniknik © (2004-08-06 14:23) [7]там будет дополнительный рекордсет,
Recordset:= Recordset.NextRecordset(RecordsAffected);
в нем и смотри.
> Кстати в MSSQL VIEW с таким запросом именно на compute
> ругается. Может синтаксис там другой?
как? он тебе наверное и говорит что не предназначен просматривать мультирекордсеты.
← →
Johnmen © (2004-08-06 14:24) [8]>Ega23 © (06.08.04 14:14) [5]
Как сказал АП, это тренировка нажимания Alt-Ctrl-Del
:)
← →
Ega23 © (2004-08-06 14:38) [9]Johnmen © (06.08.04 14:24) [8]
:о)
Блин, каждый божий раз Next забываю. Постоянно! :о)
← →
vic © (2004-08-06 15:02) [10]>sniknik © (06.08.04 14:23) [7]
там будет дополнительный рекордсет,
Recordset:= Recordset.NextRecordset(RecordsAffected);
в нем и смотри.
где - там?
не могу найти, честно говоря.
ADOQuery1.Recordset.RecordCount
выдает 50, а не 78, если считать все строки с итогами
(78 row(s) affected) - в QA
← →
sniknik © (2004-08-06 15:06) [11]> где - там?
в текущем (если он мульти), т.е.
ADOQuery1.Recordset:= ADOQuery1.Recordset.NextRecordset(RecordsAffected);
даст следующий, или ощибку если он один/последний.
← →
vic © (2004-08-06 15:31) [12]>sniknik © (06.08.04 15:06) [11]
>ADOQuery1.Recordset:= ADOQuery1.Recordset.NextRecordset(RecordsAffected);
что за RecordsAffected, имеешь в виду ADOQuery1.RowsAffected?
пишет - несоответсвие типов.
← →
sniknik © (2004-08-06 15:44) [13]а..., савсем забыл
NextRecordset + F1 ;о))
> что за RecordsAffected,
переменная
RecordsAffected is the number of rows in the returned recordset.
> имеешь в виду ADOQuery1.RowsAffected?
с чего взял?
там два варианта, если так как у меня показано делать то это вариант (тип такой :), по другому интеджер.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.062 c