AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.05.2011, 12:16   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вам это нужно знать уже после того как запрос выполниться или до этого? Если после, то не вижу ничего проще чем завести переменную-счётчик и наращивать его значение по мере их вывода. Если же информация о количестве строк вам нужно до основного запроса, то тогда придётся предварительно выполнить вспомогательный запрос. Поможет вам в этом метод SysQuery::countTotal
Вот тут почитайте Количество строк в Query
если я правильно помню, то метод countTotal не очень корректно возвращает число строк если в запросе больше одного датасорса.
Я обычно пользуюсь методом SysQuery::countLoop();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 23.05.2011, 13:06   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от lev Посмотреть сообщение
Я обычно пользуюсь методом SysQuery::countLoop();
Метод SysQuery::countLoops() в отличии от SysQuery::countTotal действительно возвращает именно количество итераций, а не количество строк. Но какой ценой достигается такой результат. Для подсчёта числа шагов выполняется лишний прогон цикла. Просто помните об этом.
Как правило countLoops используют для того чтобы узнать количество групп в запросе с группировкой. Обычно эта информация нужна для визуализации прогрессбара. Я в таких случаях пренебрегаю плавностью движения заветной полоски. В качестве "длины" прогрессбара использую countTotal и соответственно инкремент делаю на величину count(RecId) по группе.
Старый 23.05.2011, 13:20   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Метод SysQuery::countLoops() в отличии от SysQuery::countTotal действительно возвращает именно количество итераций, а не количество строк. Но какой ценой достигается такой результат. Для подсчёта числа шагов выполняется лишний прогон цикла. Просто помните об этом.
Как правило countLoops используют для того чтобы узнать количество групп в запросе с группировкой. Обычно эта информация нужна для визуализации прогрессбара. Я в таких случаях пренебрегаю плавностью движения заветной полоски. В качестве "длины" прогрессбара использую countTotal и соответственно инкремент делаю на величину count(RecId) по группе.
когда я знаю что запрос "тяжелый" и что лишние тело движения увеличат время работы операции, я вообще пренебрегаю красотой прогресс бара, и просто вывожу туда что типа:"Выполняется операция. Обработано %1 строк".
Т.е. общее кол-во строк (итераций) не показываю

P.S. извиняюсь за офтопик, это уже к теме не относится :-[
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 23.05.2011 в 13:21. Причина: добавил P.S.
Теги
query, querybuildrange, range, фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как правильно хранить статичный набор начальных данных в классах? mazzy DAX: Программирование 58 14.04.2011 12:10
Статистика по каждому коду номенклатуры. Как правильно построить Query? dynamax DAX: Программирование 17 14.10.2009 11:27
ERP-BLOG: Axapta, фильтр по сетке Blog bot DAX Blogs 26 05.02.2009 15:56
Исполнить сформированный фильтр radya DAX: Программирование 14 26.07.2007 20:47
Как правильно построить Query Bukovka DAX: Программирование 0 25.03.2004 11:55

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:42.