Привет, столкнулся с странным поведением квериран в аксапте, может сталкивался уже с этим.
суть такова
строю квериран
PHP код:
query = new Query();
qbds = query.addDataSource(tablenum(InventTrans), "InventTrans");
qbr = qbds.addRange(FieldNum(InventTrans, ItemId));
qbr = qbds.addRange(FieldNum(InventTrans, StatusReceipt));
qbr.value(int2str(StatusReceipt::Ordered));
qbr.status(RangeStatus::Hidden);
qbr = qbds.addRange(fieldNum(InventTrans, TransType));
qbr.value(int2str(InventTransType::Purch) + "," + int2str(InventTransType::InventTransfer));
qbr.status(RangeStatus::Hidden);
qbds.addSortField(FieldNum(InventTrans, DateExpected), SortOrder::Ascending);
то есть квериран по одному датасоурсу
все окей, он возвращает допустим 10 записей,
добавляю второй дс
PHP код:
query = new Query();
qbds = query.addDataSource(tablenum(InventTrans), "InventTrans");
qbr = qbds.addRange(FieldNum(InventTrans, ItemId));
qbr = qbds.addRange(FieldNum(InventTrans, StatusReceipt));
qbr.value(int2str(StatusReceipt::Ordered));
qbr.status(RangeStatus::Hidden);
qbr = qbds.addRange(fieldNum(InventTrans, TransType));
qbr.value(int2str(InventTransType::Purch) + "," + int2str(InventTransType::InventTransfer));
qbr.status(RangeStatus::Hidden);
qbds.addSortField(FieldNum(InventTrans, DateExpected), SortOrder::Ascending);
qbdsInventDim = qbds.addDataSource(tableNum(InventDim));
qbr = qbdsInventDim.addRange(FieldNum(InventDim, InventLocationId));
qbdsInventDim.addSelectionField(fieldNum(InventDim, InventLocationId));
qbl = qbdsInventDim.addLink(FieldNum(InventTrans, InventDimId), FieldNum(InventDim, InventDimId));
qbdsInventDim.fetchMode(0);
qbdsInventDim.joinMode(JoinMode::InnerJoin);
тут квериран возвращает вместо 10 записей (ну или меньше - если джойн накладывать)
несколько миллионов.
Второй вариант запроса переведенный в T-SQL возвращает правильное кол-во записей.
Что это может быть?