Показать сообщение отдельно
Старый 20.01.2004, 14:45   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Count(RecId)
Есть такое условие в CountPrim
PHP код:
    if (countQuery.dataSourceCount() == 1)
        
qbds.addSelectionField(FieldNum(Common,recId),SelectionField::COUNT); 
Т.е. появляется интелект только когда в запросе 1 таблица

Могу предложить такой вариант:
PHP код:
static int prk_lineNumber2(FormDataSource fdsCommon tmpTable null)
{
    
Query                   query;
    
Query                   countQuery;
    
QueryRun                queryRun;
    
QueryBuildDataSource    qbds;
    
QueryBuildFieldList     qbfl;
    
int                     sourceNum;
    
int                     i;
    ;

    if (
fds.queryRun())
        
query   fds.queryRun().query();
    else
        
query   fds.query();

    
countQuery  = new Query(query);
    
sourceNum   countQuery.dataSourceCount();
    for ( 
1<= sourceNumi++ )
    {
        
qbds    countQuery.dataSourceNo(i);
        
qbfl    qbds.fields();
        
qbfl.clearFieldList();
        
qbfl.addField(FieldName2Id(qbds.table(),"RecId"), SelectionField::COUNT);
    }
    
queryRun    = new QueryRun(countQuery);

    
select TmpTable;

    if (
TmpTable)
        
queryRun.setCursor(TmpTable);


    
queryRun.next();

    return 
queryRun.getNo(1).RecId;

За это сообщение автора поблагодарили: alex55 (1).