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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.09.2005, 13:10   #1  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
? Ограничено ли количество элементов в контейнере?
есть job

static void Job2(Args _args)
{
container c;

c = [1, 2, 3, 4,...47]
}

компилирую. всё нормально. но если сделать так:

static void Job2(Args _args)
{
container c;

c = [1, 2, 3, 4,...47, 48]
}

то при компиляции возникает ошибка:
"Переполнение во внутреннем стеке компилятора."
кто-нить знает как с этим бороться и причины этого?
Старый 30.09.2005, 13:49   #2  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Overview of containers


Keyword container

Size of data type Dynamic

Scope of data type User defined

Default value 0

Implicit conversions none, but using the container-functions implicit conversion between
all data types

Explicit conversions none

Это из руководства разработчика.
Количество элементов в контейнере неограничено.
Старый 30.09.2005, 13:53   #3  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
но как показывает практика )) я конечно сделаю так чтоб нужный контейнер формировался динамически из нескольких более мелких. но всё же интересно откуда лезет эта ошибка...
Старый 30.09.2005, 13:57   #4  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
PHP код:
static void Job8(Args _args)
{
    
container c;
    
int       i;
    
boolean   exitLoop true;

;
    while(
exitLoop)
    {
        if(
i==10000)
         
exitLoop false;

        
conins(c,i,i);
        
i++;
   }

вставляю в контейнер 10000 елементов.
Работает.
Старый 30.09.2005, 13:59   #5  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Сколько угодно элементов можете вставить.
Пока оперативная память не закончиться
Старый 30.09.2005, 14:00   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вам же написано - из компилятора. Не может он проглотить такую конструкцию. Почему - вопрос к его разработчикам
__________________
Axapta v.3.0 sp5 kr2
Старый 30.09.2005, 14:02   #7  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
то что так как у Вас в примере работает я знаю. сам пробовал. но дело в том что есть такой класс RAssetSumCalc. там есть макрос в котором перечислены все переменные, которые необходимо запаковать на сервере и переправить на клиента в случае применения этого класса на тонком клиенте. так вот я добавил в этом классе пару переменных, которые есессно тоже надо передавать. число переменных в результате стало 52. класс перестал компилироваться. максимум который выдерживает компилятор - 47 переменных.
Старый 30.09.2005, 14:05   #8  
Zan is offline
Zan
Участник
 
104 / 25 (1) +++
Регистрация: 22.07.2004
Адрес: I live in Moscow
Хм..
Не пооленился сделал такой же джоб как у Вас
PHP код:
static void Job9(Args _args)
{
  
container c;
  
int       i;
;
   
= [1,2,3,4,5,6,7,8,9,10,11,12,13,14,
       
15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
       
31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47];


Действительно переполнение
Старый 30.09.2005, 14:06   #9  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Угу, не пишите длинных строчек в редакторе кода ... помещайте все на экране.
И все будет хорошо.

С уважением, itfs.
Старый 30.09.2005, 14:14   #10  
doo is offline
doo
Участник
 
41 / 10 (1) +
Регистрация: 05.11.2004
itfs

к сожалению не будет всё хорошо. хоть в столбик по одной переменной пишите.
Старый 30.09.2005, 14:18   #11  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Ээ..., это значит, что помещение возврата каретки посреди оператора, не обманывают встроенный лексический анализатор, который для анализа выражения вцелом вынужден повыкидывать оные ... т.о. возвращаемся к изначальному ограничению ....
только не подумайте, что мне это нравится.

С уважением, itfs.
Старый 30.09.2005, 14:49   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
судя по всему переполняется стек синтаксического анализатора, а переводы строк выбрасываются лексическим анализатором.

Лучше попробовать разбить контейнеры плюсами:
PHP код:
static void Job9(Args _args)

{

  
container c;

  
int       i;
;

   
= [1,2,3,4,5,6,7,8,9,10,11,12,13,14,

       
15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]+[31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48];    

За это сообщение автора поблагодарили: Eldar9x (1).
Старый 30.09.2005, 15:12   #13  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Получается, что анализатор имеет ограничение на длинну одной "лексеммы", т.е. анализируемой единовременно конструкции кода. Никто не пытался подсчитать (или прочитать) величину ограничения?

С уважением, itfs.
Старый 30.09.2005, 15:57   #14  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
скорее на глубину всего дерева разбора
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное количество в строке журнала инвентаризации pitersky DAX: Функционал 7 16.01.2009 16:46
как отдельно учитывать фактическое и финансовое количество? romulis DAX: Функционал 4 08.02.2007 15:01
Количество знаков после запятой для количества в Закупке. dimit DAX: Функционал 18 20.11.2006 17:23
Количество вакансий в штатном расписании. NJD DAX: Функционал 3 20.09.2006 15:48
Закупка. Количество введенное в таблицу PurchLine не отображается в накладной ATimTim DAX: Программирование 15 21.06.2004 10:11

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

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

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