AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2013, 12:54   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
AX2009. Не используйте NotExists
Ошибка известная с давних времен.
Если в запросе использовать notexists join, то последующие exists & notexists не работают.
Небольшой пример на AX2009RU8:
X++:
static void JobNotExists(Args _args)
{
    InventTable     inventTable;
    InventTable     inventTableE;
    InventTable     inventTableNE;
    
    ItemId          itemId = '1001', itemIdne = '1001notFound';
    ;
    
    // Убедимся, что такая запись есть
    select itemId from inventTable
        where inventTable.ItemId == itemId;
        
    info(inventTable.ItemId);

    // Убедимся, что такая ItemId есть, а ItemIdne нет
    select itemId from inventTable
        where inventTable.ItemId == itemId
    notexists join inventTableNE
        where inventTableNE.ItemId == itemIdne;

    info(inventTable.ItemId);

    // Здесь exists возвращает false, но на результате это не сказывается
    select itemId from inventTable
        where inventTable.ItemId == itemId
    notexists join inventTableNE
        where inventTableNE.ItemId == itemIdne
    exists join inventTableE
        where inventTableE.ItemId == itemIdne;

    error(inventTable.ItemId);

    // Здесь второй notexists возвращает false, но на результате это не сказывается
    select itemId from inventTable
        where inventTable.ItemId == itemId
    notexists join inventTableE
        where inventTableE.ItemId == itemIdne
    notexists join inventTableNE
        where inventTableNE.ItemId == inventTable.ItemId;

    error(inventTable.ItemId);
}
Почему вспомнил?
Встретил в HRP несколько примеров такого кода с макросом TransLinkNotExistsReversed_RU

P.S. Сейчас не могу проверить, но помнится на Oracle это не воспроизводится

Последний раз редактировалось Wamr; 29.05.2013 в 12:58.
За это сообщение автора поблагодарили: lev (5), MikeR (3), A_BAS (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
sumitax: SharePoint 2010 and AX2009 Blog bot DAX Blogs 0 11.11.2010 11:11
Shekhar: Dynamics AX2009 : Standalone Installation on Vista with Role centres and workflow. Blog bot DAX Blogs 0 30.03.2010 15:05
ax2009 & SSRS kitty DAX: Программирование 6 02.04.2009 10:38
Не работают 2 notexists join savel DAX: Программирование 13 23.07.2004 13:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:52.