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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2004, 13:24   #1  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
Out of memory
Делаю импорт данных (Заказы и строки заказов - 3000 заказов и 20000 строк) из csv-файла
с заказами все нормально,
Строки - как дело доходит примерно до середины вываливается ошибка

Заголовок окна: SmartHeap Library
Текст сообщения: Out of memory. Please free some memory, then choose retry.

Подскажите, что можно исправить - вот пример кода.

где
Common curCommon;
sysdictTable.id() = id SalesTable;
curCommon = sysdictTable.makeRecord();

protected void anSalesLine()
{
SalesTable salesTable;
InventDim inventDim;
;
ttsbegin;

salesTable = SalesTable::find(curCommon.(fieldnum(SalesLine,SalesId)));
if (salesTable)
{
if ((salesTable.SalesStatus == salesStatus::Backorder) && (salesTable.DocumentStatus == DocumentStatus::None ))
{
inventDim.InventLocationId = salesTable.InventLocationId;
curCommon.(fieldnum(SalesLine,SalesStatus)) = SalesStatus::Backorder;
curCommon.(fieldnum(SalesLine,Reservation)) = ItemReservation::None;
curCommon.(fieldnum(salesLine,InventDimId)) = InventDim::findOrCreate(inventDim).inventDimId;
curCommon.(fieldnum(SalesLine,InventTransId)) = '';
curCommon.(fieldnum(SalesLine,RecId)) = '';
InventMovement::bufferSetRemainQty(curCommon);
curCommon.write();

}
}
ttscommit;
}
Старый 01.04.2004, 13:37   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
А каким образом Вы файл читаете?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 01.04.2004, 13:46   #3  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
Container importBuffer

importBuffer = ioData.read();

В общем, аналогично классу sysDataImport
Старый 01.04.2004, 14:31   #4  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
Наблюдаю за ax32.exe в диспетчере задач , по мере импорта строк он начинает просто пожирать память пока всю не сожрет . В чем дело не могу понять. м.б. из-за того , что еще и складские проводки (inventTrans) и запасы в наличии (InventSum) формируются ...?
Старый 01.04.2004, 14:40   #5  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
А можно на блок кода, где Вы записи читаете, взглянуть?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 01.04.2004, 14:59   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Может транзакция большая? Если разбить?
Старый 01.04.2004, 15:07   #7  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
str bufRecord;
void readOne()
{
importBuffer = ioData.read();
{
[bufRecord, tableId, oldRecId] = importBuffer;
}

}

private void importBuffer(
SysDictTable _dictTable,
str _bufRecord,
recId _oldRecId,
)
{
Counter i;
boolean nativeRecIdOk;
Common updateCommon = NULL;
TableId tableId = _dictTable.id();
// --------------

if (_bufRecord == #record)
{
curCommon = _dictTable.makeRecord();

for (i=1; i <= fieldsInCurFile; i++)
curCommon.(newFieldId[i]) = conPeek(importbuffer,i + firstDataField);
}
Старый 01.04.2004, 15:12   #8  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
Я еще импортирую справочники, в некоторых из них записей намного больше.
Читается при этом файл одинаково. К ним вопросов нет, но как только SalesLine, все ax32.exe с ума сходит. Еще вопрос - На какие нужды он в принципе м.б. большие объемы памяти ?
Старый 01.04.2004, 15:44   #9  
Oleg Krutikov is offline
Oleg Krutikov
Участник
 
10 / 10 (1) +
Регистрация: 07.10.2003
Адрес: Москва
Похожая вроде ситуация

http://www.axforum.info/forums/showt...&threadid=3662
Старый 02.04.2004, 06:33   #10  
Swetik is offline
Swetik
Участник
 
221 / 10 (1) +
Регистрация: 31.07.2002
О , великий и могучий MDAC 2.8 !!!!

Хоть у меня процессор caleron , но помог именно он.

Спасибо всем большое !!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
memory leak in Axapta 3.0 Blog bot DAX Blogs 1 15.08.2008 11:56
SmartHeap out of Memory при работе пакетного сервера Alenka DAX: Программирование 4 04.09.2007 15:18
findRecord - Out of memory Yprit DAX: Программирование 30 15.04.2005 13:43
Smartheap Library out of memory Fedor DAX: Программирование 11 02.03.2005 13:18
Ошибка "Memory could not be "read" kalex DAX: Администрирование 14 23.01.2003 12:54
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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