Показать сообщение отдельно
Старый 17.09.2010, 10:52   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
как и говорил Иван, вот такой джобик через некоторое время валится с ошибкой SQL (слишком длинный запрос)
X++:
static void JobRangeLength(Args _args)
{
    InventTable     inventTable, inventTableQr;
    int             i;
    Query           q = new Query();
    QueryRun        qr;
    QueryBuildDataSource    qbDS;
    QueryBuildRange         qRange;
    ;

    qbDS = q.addDataSource(tableNum(InventTable));
    qbDS.fields().clearFieldList();
    qbDS.addSelectionField(fieldNum(InventTable, ItemId));
    qbDS.addSortField(fieldNum(InventTable, ItemId), SortOrder::Descending);

    qRange = qbDS.addRange(fieldNum(InventTable, ItemId));
    qRange.value("null");

    qr = new QueryRun(q);

    while select ItemId from inventTable
        order by ItemId ASC
    {
        i++;
        qRange.value(qRange.value() + ',' + inventTable.ItemId);
        qr.query(q);
        qr.reset();
        qr.next();

        inventTableQr = qr.getNo(1);
        if(inventTable.ItemId != inventTableQr.ItemId)
        {
            info(strFmt("%1 %2 %3", i, inventTable.ItemId, strLen(qRange.value())));
            warning(qRange.value());
            break;
        }
    }
}
За это сообщение автора поблагодарили: Logger (3), aidsua (2).