Показать сообщение отдельно
Старый 21.07.2005, 11:20   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
К истокам
Есть еще способ, о котором часто забывают
PHP код:
static void Job143(Args _args)
{
    
Query       q = new Query();
    
QueryRun    qr;
    
int         ij;
    
str         range;
    ;

    
q.addDataSource(tableNum(InventTable));
    for( 
020i++)
    {
        
range '';
        for( 
1<= 100j++)
        {
            
range += (range ',' '') + int2str(i*100 j);
        }
        
q.dataSourceNo(1).addRange(fieldNum(InventTableRecId)).value(range);
    }

    
qr = new QueryRun(q);

    
qr.next();

    
info(qr.query().dataSourceNo(1).toString());

Т.е. на одно поле можно накладывать несколько раз range, которые в запросе будут объединяться по ИЛИ.

Как видно из примера для MS-SQL можно спокойно запихнуть 2000 ограничений, а для Oracle мне удалось и более 5000. И никаких join