Показать сообщение отдельно
Старый 25.02.2004, 08:49   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Как убрать /*+ First_Rows */
делаю следующую связку datasource'ов:
PHP код:
    q = new Query();

    
qb q.addDataSourcetablenum(UserInfo));

    
qb qb.addDataSourcetablenum(UserGroupList));
    
qb.relationsfalse);
    
qb.addLinkfieldnum(UserGroupList,UserId), fieldnum(UserInfo,Id));
    
qb.joinModeJoinMode::ExistsJoin);

    
qb qb.addDataSourcetablenum(RDJournalUserGroup));
    
qb.relationsfalse);
    
qb.addLinkfieldnum(RDJournalUserGroup,UserGroupId), fieldnum(UserGroupList,GroupId));
    
qb.joinModeJoinMode::ExistsJoin);
    
qb.addRangefieldnum(RDJournalUserGroup,RDJournalNameId)).value(journalNameId);

    
this.query(q); 
То есть последовательно присоединяются два datasource'а с типом связи ExistsJoin. Axapta генерит запрос, где сразу после SELECT ставит /*+ FIRST_ROWS*/. Что портит мне всю выборку (первая запись просто множится на кол-во записей). Если /*+ FIRST_ROWS*/ убрать совсем или заменить на /*+ LAST_ROWS*/, то записи возвращаются так как и задумывалось.
База данных на Oracle.
Можно ли как-то программно избавиться от /*+ FIRST_ROWS*/ в query.
__________________
Дмитрий