Показать сообщение отдельно
Старый 27.01.2004, 19:45   #1  
xshaman is offline
xshaman
Участник
 
36 / 11 (1) +
Регистрация: 17.12.2003
Адрес: Санкт-Петербург
поведение queryRun
Привет, столкнулся с странным поведением квериран в аксапте, может сталкивался уже с этим.
суть такова

строю квериран
PHP код:
    query = new Query();
    
qbds  query.addDataSource(tablenum(InventTrans), "InventTrans");
    
qbr   qbds.addRange(FieldNum(InventTransItemId));
    
qbr   qbds.addRange(FieldNum(InventTransStatusReceipt));
    
qbr.value(int2str(StatusReceipt::Ordered));
    
qbr.status(RangeStatus::Hidden);
    
qbr   qbds.addRange(fieldNum(InventTransTransType));
    
qbr.value(int2str(InventTransType::Purch) + "," int2str(InventTransType::InventTransfer));
    
qbr.status(RangeStatus::Hidden);
    
qbds.addSortField(FieldNum(InventTransDateExpected), SortOrder::Ascending); 
то есть квериран по одному датасоурсу
все окей, он возвращает допустим 10 записей,

добавляю второй дс
PHP код:
    query = new Query();
    
qbds  query.addDataSource(tablenum(InventTrans), "InventTrans");
    
qbr   qbds.addRange(FieldNum(InventTransItemId));
    
qbr   qbds.addRange(FieldNum(InventTransStatusReceipt));
    
qbr.value(int2str(StatusReceipt::Ordered));
    
qbr.status(RangeStatus::Hidden);
    
qbr   qbds.addRange(fieldNum(InventTransTransType));
    
qbr.value(int2str(InventTransType::Purch) + "," int2str(InventTransType::InventTransfer));
    
qbr.status(RangeStatus::Hidden);
    
qbds.addSortField(FieldNum(InventTransDateExpected), SortOrder::Ascending);

    
qbdsInventDim qbds.addDataSource(tableNum(InventDim));
    
qbr qbdsInventDim.addRange(FieldNum(InventDimInventLocationId));
    
qbdsInventDim.addSelectionField(fieldNum(InventDimInventLocationId));
    
qbl qbdsInventDim.addLink(FieldNum(InventTransInventDimId), FieldNum(InventDimInventDimId));
    
qbdsInventDim.fetchMode(0);
    
qbdsInventDim.joinMode(JoinMode::InnerJoin); 
тут квериран возвращает вместо 10 записей (ну или меньше - если джойн накладывать)
несколько миллионов.

Второй вариант запроса переведенный в T-SQL возвращает правильное кол-во записей.
Что это может быть?