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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2010, 17:39   #7  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Две ошибки в коде1. markupTransNew.data(markupTrans); - после такой команды надо сделать markupTransNew.recid = 0; - это мелочь, но советую эту команду применять наравне с markupTransNew.clear();2. Зацикливание неизбежно. Условие выборки включает вновь создаваемые записи. Можно конечно ловить новые записи разными ухищрениями, но лучше делать по рекомендациям поставщика программы - см ниже
X++:
void copyBOM(BOMId _FromBOM, BOMId _ToBOM)
{
    RecordInsertList BOMList;
    BOM BOM, newBOM;
    ;
    BOMList = new RecordInsertList(tableNum(BOM));
    while select BOM    where BOM.BOMId == _FromBOM
    {
        newBOM.data(BOM);
        newBOM.BOMId = _ToBOM;
        BOMList.add(newBOM);
    }
    BOMList.insertDatabase();
}
И еще совет - если внутри цикла по курсору идет обновление, удаление, запись по той же самой таблице, что присутствет в выборке (select, query) всегда создавать массив (например приведенный класс, класс MAP, SET (аккуратно - это ссылки а не сами записи) ) и только после выхода из цикла выполнить комит в базе - просто, но надежно защитит вас в будущем от непонятных глюков. Еще на многих таблицах есть метод findRecid - это еще один вариант - идем по циклу выборки для чтения - в контейнер recid и newValue - потом во втором цикле - обновление.
Теги
курсор

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
2 while select или join? _scorp_ DAX: Программирование 9 23.01.2009 16:02
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
gatesasbait: Reverse keyword on Select Statements Blog bot DAX Blogs 0 08.02.2008 00:10
Fred Shen: Always use recId to know if a select statement returns a record Blog bot DAX Blogs 0 28.10.2006 16:40
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43

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

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

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