Как получить количество итераций по лог.таблице?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

В 5-м Атлантисе вроде, говорят, появились агрерирующие функции. По идее они должны облегчить данную задачу. Но сам еще его не юзал и поэтому точно ответа дать не могу...так, мысли вслух :grin:
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

в любом случае recorsintable сделает то же самое - полный пробег по выборке, так что с точки зрения скорости - без разницы.
если выборка длинная, то лучше не парится с такими красивостями

как вариант если идет выборка всегда приблизительно одинаковой длины, то запоминай в деске последнее количество секунд(минут) и удлиняй прогресс по времени прошедшему от начала операции - не так точно, но зато на быстродействии не скажется.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

coolibin писал(а):в любом случае recorsintable сделает то же самое - полный пробег по выборке, так что с точки зрения скорости - без разницы.
RecordsInTable возвращает кол-во записей в ФИЗИЧЕСКОЙ таблице, а не в логической. Никаких пробежек по выборке она не совершает.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

WiRuc
на скл платформе recordsintable=select count(nrec) from table;
на битриве возможно готовое значение
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

san
енто как? можно поподробнее? А то я в танке.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

san писал(а):WiRuc
на скл платформе recordsintable=select count(nrec) from table;
В курсе :grin:
Имелось в виду, что не делается COUNT по необходимой выборке, возвращается кол-во записей во всей таблице.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

scanner
профайлером можно посмотреть
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

scanner писал(а):san
енто как? можно поподробнее? А то я в танке.
В первазиве, в заголовке таблицы храниться текущее значение записей в таблице (прям как DBF ей богу), поэтому можно спокойно извлечь это значение.
В MSSQL для получения кол-ва записей драйвером выполняется вот такой запрос

Код: Выделить всё

SELECT COUNT(F$NREC) FROM T$KATMC
Хотя, в MSSQL тоже можно сразу получить готовое кол-во записей. Для этого нужно сделать запрос к системной таблице SYSINDEXES, в которой помимо прочего храниться кол-во записей для всех таблиц. Правда, это кол-во не всегда точно, но для приближенной оценки вполне годиться.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

WiRuc
Я так понимаю речь идет о физических таблицах, а как же быть с логическими таблицами?
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

scanner писал(а):WiRuc
Я так понимаю речь идет о физических таблицах, а как же быть с логическими таблицами?
Никак, только "ручной" подсчет.
Ответить