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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.01.2004, 18:33   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
joined-курсор был использован в другом операторе SELECT
С Рождеством всех!!

Я не пойму, почему возникает ошибка.

PHP код:
static void Job1(Args _args)
{
    
SalesLine                   SalesLine;
    
SalesTable                  SalesTable;
    
InventTable                 InventTable;
    
InventJournalTrans          InventJournalTrans;
    
InventDim                   InventDim;
    ;
    while 
select SalesLine
          join   SalesTable
          join   InventTable
          join   InventDim
                       where SalesTable
.SalesId                 == SalesLine.SalesId         &&
                             
InventTable.ItemId                 == SalesLine.ItemId          &&
                             
InventDim.InventDimId              == SalesLine.inventDimId
    
{
    }

    while 
select sum(Qty),sum(CostPricefrom InventJournalTrans
                 group by TransDate
,ItemId,InventDimId
          join   InventDim
                 group by InventDimId
InventSizeIdInventBatchIdConfigIdInventLocationId
          join   InventTable
                 group by ItemId
ItemGroupIdItemName
                            where InventJournalTrans
.JournalType           == InventJournalType::Movement    &&
                                  
InventTable.ItemId                       == InventJournalTrans.ItemId      &&
                                  
InventDim.InventDimId                    == InventJournalTrans.inventDimId
    
{
    }

Старый 06.01.2004, 18:52   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
InventDim и InventTable используются в двух запросах - надо завести еще пару для внутреннего while select
Старый 08.01.2004, 09:37   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
InventDim и InventTable используются в двух запросах - надо завести еще пару для внутреннего while select
Я знаю, но если посмотреть, то запросы как бы отработали и все должно быть ОК.
Если любой из запросов заменить другим, т.е. два одинаковых подряд ошибок не дают.
Старый 08.01.2004, 11:35   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
После первого запроса поставте
InventDim = null;
InventTAble = null;

Хотя из-за чего это возникает непонятно.
__________________
С уважением, Игорь Ласийчук.
Старый 08.01.2004, 11:41   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Виноват - переклинило, что тут один while select внутри другого..
Старый 08.01.2004, 12:02   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
После первого запроса поставте
InventDim = null;
InventTAble = null;
Я делаю так InventTAble.clear();
Самое смешное этого достаточно.
Наверно система считает, что в InventTable-курсоре что то есть.
Старый 08.01.2004, 12:10   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
вопрос
А первый while select проходит до конца или из него происходит выход по break?
Старый 08.01.2004, 12:35   #8  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
2 Wamr
Попобуй запустить как есть.
Старый 08.01.2004, 12:54   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Тёмные силы электричества
Боюсь, что я не дождусь результата первого while..

Во втором запросе можно поменять местами join InventDim и join InventTable.

Причины такого трепетного отношения к порядку курсоров в разных запросах остается загадкой.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
не срабатывает select forupdate для joined таблицы? kashperuk DAX: Программирование 18 05.12.2008 12:00
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
вызов метода из таблицы в операторе while select V777 DAX: Программирование 7 23.04.2008 09:11
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
joined курсор Oz DAX: Программирование 5 25.03.2004 11:01
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:59.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.