Показать сообщение отдельно
Старый 15.10.2004, 10:45   #10  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано Maxim Gorbunov
Записи (Types::Record) не являются объектами Axapta в общем смысле. Скорее они похожи на статические структуры.
Сорри - немного неправильно понял вашу фразу. На самом деле она верна.

В общем ответ на вопрос именно "хранит в упакованном виде".
Несмотря на то что таблицы в аксапте ведут себя как обычные объекты, но в методе Map::insert для типа types::record происходит неявное создание некоего промежуточного хранилища полей таблицы и копирование их значений туда, хранится в map-е именно эта переменная. В методе lookup видимо происходит "обратная расшифровка" таблицы (видимо по TableId) - создаётся новая (!) табличная переменная такого типа, в неё распаковываются значения полей и она возвращается пользователю. Замечу что:

Unit unit1, unit2;
Map map = new Map( types::integer, types::Record );
;
select unit1;
map.insert( unit1.RecId, unit1 );
unit2 = map.lookup( unit1.RecId );
next unit2; // Выдаст ошибку, т.к. unit2 - совершенно новый экземпляр таблицы unit, с неоткрытым еще запросом (select-ом)