Показать сообщение отдельно
Старый 20.09.2011, 14:47   #17  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Немного пофиксил код для запросов с группировкой: не правильно возвращает loops если запрос с группировкой возвращает 1 строку (например query такого содержания: select ItemGroupId from inventTable group by ItemGroupId where ItemGroupId=='const')

X++:
private server static container countPrim(container _queryPack)
{
...
    Integer                 iGrp;
  ;
    countQueryRun   = new QueryRun(_queryPack);
    countQuery      = countQueryRun.query();
    for (k = 1; k <= countQuery.dataSourceCount();k++)
    {
        qbds = countQuery.dataSourceNo(k);
        qbds.update(false);
        iGrp +=(qbds.orderMode()==orderMode::GroupBy); // SHiSHok.fix
        //qbds.sortClear(); // Вот этот метод сильно мешал!
        qbfl = qbds.fields();
        qbfl.dynamic(false);
        qbfl.clearFieldList();
        qbfl.addField(FieldNum(Common,recId),SelectionField::COUNT);
    }

    countQueryRun   = new QueryRun(countQuery);
    while (countQueryRun.next())
    {
        common  = countQueryRun.getNo(1);
        counter += common.recId;
        loops++;
    }
//    return [counter,((loops > 1)? loops : counter)];
    return [counter,(iGrp ? loops : counter)]; // SHiSHok.fix
}
__________________
--- SHiSHok
За это сообщение автора поблагодарили: mazzy (5), Ace of Database (5), wojzeh (1).