AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2021, 11:24   #1  
mayk is offline
mayk
Участник
Аватар для mayk
 
43 / 65 (3) ++++
Регистрация: 07.03.2008
Наткнулся на прелести обновления индексированных полей InMemory таблиц
Пример 3 разных попыток обновления

X++:
   TmpFontName tmp;    
    ;    
    //(update_recordset)
    delete_from tmp; tmp.insert();
    update_recordset tmp setting FontName = tmp.FontName + 'a';
    while select tmp {info (tmp.FontName);}
    
    //(select forupdate)
    delete_from tmp; tmp.insert();
    while select forupdate tmp{ tmp.FontName += 'a'; tmp.update(); }
    while select tmp {info (tmp.FontName);}

    //(select forupdate order)
    delete_from tmp; tmp.insert();
    while select forupdate tmp order recid{ tmp.FontName += 'a'; tmp.update(); }
    while select tmp {info (tmp.FontName);}
Что выведет джоб? Вот что:
Цитата:
Сообщение (16:16:38)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
a
А с TempDb такой ерунды нет. Обновление выполняется лишь один раз.
За это сообщение автора поблагодарили: dech (5), axm2017 (4).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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