Показать сообщение отдельно
Старый 11.02.2004, 17:06   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Немного теории
Query - класс, который содержит всю структуру запроса
QueryBuildDataSоurce - источник данных (таблица), то что содержится в FROM. Сколько таблиц, столько и QBDS должно быть в Query. QBDS содержит также список полей, сортировок, ограничений (QueryBuildRange), связей с др. таблицами.
QueryRun - класс, который позволяет исполнить запрос и получить результат.

Простой пример:
PHP код:
static void Job43(Args _args)
{
    
Query           q = new Query();
    
QueryRun        qr;
    
InventTable     inventTable;
    
InventItemGroup inventItemGroup;

    
QueryBuildDataSource    qbDS;
    
QueryBuildRange         qbRange;
    ;

    
qbDS q.addDataSource(tableNum(InventItemGroup));
    
qbDS.orderMode(OrderMode::GROUPBY);
    
qbDS.addSortField(fieldNum(InventItemGroupName));

    
qbDS qbDS.addDataSource(tableNum(InventTable));
    
qbDS.addLink(fieldNum(InventItemGroupItemGroupId), fieldNum(InventTableItemGroupId));

    
qbDS.orderMode(OrderMode::GROUPBY);
    
qbDS.addSortField(fieldNum(InventTableItemGroupId));

    
qbDS.addSelectionField(fieldNum(InventTableRecId), SelectionField::COUNT);

    
qbRange qbDS.addRange(fieldNum(InventTableItemId));
    
qbRange.value("*0");

    
qr = new QueryRun(q);
    while(
qr.next())
    {
        
inventTable qr.get(tableNum(InventTable));
        
inventItemGroup qr.get(tableNum(InventItemGroup));

        print 
inventItemGroup.Name " : " int2str(inventTable.RecId);
    }

    
pause;

И почитайте System Documentation \ Classes