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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2010, 11:14   #1  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Крэш системы при использовании не актуального MapEnumerator
X++:
static void JobUpdateMapTest(Args _args)
{
    Map Map = new Map(Types::Integer, Types::Container);
    MapEnumerator m;
    str str31_34 = "1234567890" + "1234567890" + "1234567890" + "1234";  // 31 <= length <= 34
    int key = 1;
    ;

    Map.insert(key, ["1"]);
    m = Map.getEnumerator();
    m.moveNext(); // получаем энумератор

    // меняем содержимое мапа
    Map.remove(key);
    Map.insert(key, [str31_34]);

    // пытаемся двигаться дальше
    m.moveNext(); // crash
}
Собственно, а что ещё можно было ожидать, скажете вы. Но дело в том что на всех остальных типах данных такой фокус срабатывает. Да что там других типах, при другой длинне строки тоже всё работает. До поры до времени возможно, но работает.

Вопрос к общественности:
1) Правомерно ли, заранее полученный MapEnumerator, использовать после изменения самого мапа? Только если производилось удаление элементов? Только если производилось добавление? Всегда правомерно/не правомерно?
2) А как вы реализуете массовое обновление значений, хранящихся в мапе?

P.S.: Забыл указать. Ошибка у меня воспроизводится в версии AX4.0. В Ax2009 ошибки нет. Значит ли это, что такой код писать можно?

Последний раз редактировалось S.Kuskov; 12.04.2010 в 11:22.
Теги
баг, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отсюда вопрос - где эффективнее всего использовать данное сжатие ? OLAP системы ? OLTP системы ? Logger DAX: Администрирование 6 17.08.2009 20:44
Каков процент внедрений "стандартной" поставки системы Аксапта? coolibin DAX: Прочие вопросы 17 10.02.2009 12:45
Крэш DAX 4.0 / DAX 2009 CDR DAX: Программирование 13 23.10.2008 13:27
Проблемы с производительностью системы MIkeFW DAX: Прочие вопросы 16 25.06.2002 20:29
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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