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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2015, 10:55   #1  
Xardas is offline
Xardas
Участник
 
28 / 13 (1) ++
Регистрация: 19.09.2012
"Двойное" обновление строк
Добрый день, знатоки. В процессе отладки программы столкнулся со странностью.
X++:
    ttsbegin;

    i = 1;
    while select forupdate inOutData
          where inOutData.InOutDate >= firstDate &&
                inOutData.InOutDate <= lastDate
    {
        if (i <= conlen(data))
        {
            con = conpeek(data, i);
            inOutData.EmplId    = conpeek(con, 1);
            inOutData.InOutDate = conpeek(con, 2);
            inOutData.InOutTime = conpeek(con, 3);
            inOutData.InOutType = conpeek(con, 4);
            inOutData.update();
        }
        else
            inOutData.delete();
        i++;
    }

    while (i <= conlen(data))
    {
        con = conpeek(data, i);
        inOutData.clear();
        inOutData.EmplId    = conpeek(con, 1);
        inOutData.InOutDate = conpeek(con, 2);
        inOutData.InOutTime = conpeek(con, 3);
        inOutData.InOutType = conpeek(con, 4);
        inOutData.insert();
        i++;
    }

    ttscommit;
В данном коде некоторые строки в цикле while select forupdate обновляются... дважды. И, соответственно, часть из них переписывается. Стоит только добавить в запрос строку order by RecId, и алгоритм начинает работать как часы. Контейнер data был одинаков для обоих прогонов. С чем может быть связано такое странное поведение?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
"Инвентаризационный код" в группах инвентаризации и создание строк инвентаризации lev DAX: Функционал 0 11.10.2011 09:49
Периодическое обновление строк в форме DreamCreator DAX: Программирование 6 15.05.2011 17:51
Добавление строк в "Фильтр записей" Vby DAX: Программирование 6 05.06.2006 11:31
При утверждении Спланированного переноса "Обновление маркировки" не работает? clerk DAX: Функционал 2 29.03.2006 13:35
"Сливание" строк с одинаковой номенклатурой в печатных формах. NJD DAX: Функционал 9 24.06.2004 19:41

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

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

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