![]() |
#17 |
Участник
|
Хочу исправить свою ошибку:
Код: loops = 0; while (queryRun.next()) { record = queryRun.getNo(1); ret += record.(RecId); loops++; } ret = (loops>1 ? loops : ret); return ret; С задачей подсчета строк в запросе я сталкивался в 2х случаях: - когда требовалось выводить какие-то агрегированные значения в форме с учетом фильтров пользователя и dynalink-ов c другими формами; - для инициализация прогресса перед выполнением какого-то длительного процесса. И в том, и в другом случаи важен не только результат, но и скорость. Т.е. простой перебор строк (читай countTotal) не подходит. При наличии GROUP BY даже метод Максима приходит к перебору. Простого способа посчитать строки с группировками НЕТ. Т.е. для таких вычислений надо искать какой-то обходной путь. Если честно, то я почти никогда не использовал универсальный метод подсчета кол-ва строк в запросе, так как всегда старался сделать несколько вычислений (кол-ва, суммы..) за один проход ----------------------- Паковать dynalink. Не представляю себе, как можно корректно упаковать динамическую связь одного объекта (курсора) с другим объектом (запрос)? А как потом распаковать? |
|