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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2004, 21:48   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,891 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
2 Muzzy
Спасибо за ответ.


Хотелось бы узнать еще вот что. Получается что если я перебираю в цикле (while select) записи таблицы и нужные мне кладу в map, то получается что по выходе из цикла все элементы map-a будут ссылаться на одну запись которая была в цикле последней...

А хотелось бы иметь набор отобранных экземпляров записей ...

Т.е. неясно как ведет себя цикл при итерациях. -
1. Создает заново новый экземпляр табличной переменной, а старая освобождается (если, естественно, на неё больше нет ссылок)

2. либо просто грузит новые значения в один и тот же экземпляр.

Подозреваю, что скорее всего второе.

Но в таком случае - есть ли способ гарантированно создать копию, чтобы положить её в map ?
(Это нужно для создания некоего подобия кеша из записей, с возможностью быстрого доступа и обработки)

Я смотрел код в аксапте (3.0 SP 2 ) и, например, в классе
InventCostItemDim
нашел такой пример, но там для каждой строки создается отдельный экземпляр путем нового (!!!) запроса к базе данных :

/*для каждой выбранной строки вызывается этот метод */
protected void loadTrans(InventTrans _inventTrans)
{
InventTrans inventTransCopy;
;
InventTransCopy = inventTrans::findRecId(_inventTrans.RecId,true);

if (inventTransCopy.RecId)
{
mapInventTrans.insert(inventTransCopy.RecId,inventTransCopy);
...

}

но мне кажется это неоптимально - для каждой записи делать отдельный запрос к базе. Гораздо быстрее (что как раз от меня и требуется !) было бы отбирать группу записей и потом обрабатывать, а не дергать их по одной заводя кучу табличных переменных.

Хотя возможно движок аксапты использует кеширование, так что вызов приведенного метода уже не приводит к новому обращению к базе. Но это надо уточнять.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помещение временной таблицы в Map Lemming DAX: Программирование 20 19.10.2017 14:16
Dynamics AX: Map Object Sorting - a real issue Blog bot DAX Blogs 7 15.10.2008 12:02
MAP vs Class. В чем идейная необходимость в MAP-ах? А что если использовать Class вместо MAP? Hub DAX: Программирование 16 11.08.2008 16:58
casperkamal: Using record templates in code for Dynamics Ax 4.0. Blog bot DAX Blogs 0 10.05.2008 19:14
Types::Record в качестве ключа для класса Map Gad DAX: Программирование 12 11.07.2007 10:54

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

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

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