01.04.2004, 13:24 | #1 |
Участник
|
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 |
Administrator
|
А каким образом Вы файл читаете?
__________________
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 |
Участник
|
Container importBuffer
importBuffer = ioData.read(); В общем, аналогично классу sysDataImport |
|
01.04.2004, 14:31 | #4 |
Участник
|
Наблюдаю за ax32.exe в диспетчере задач , по мере импорта строк он начинает просто пожирать память пока всю не сожрет . В чем дело не могу понять. м.б. из-за того , что еще и складские проводки (inventTrans) и запасы в наличии (InventSum) формируются ...?
|
|
01.04.2004, 14:40 | #5 |
Administrator
|
А можно на блок кода, где Вы записи читаете, взглянуть?
__________________
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 |
NavAx
|
Может транзакция большая? Если разбить?
|
|
01.04.2004, 15:07 | #7 |
Участник
|
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 |
Участник
|
Я еще импортирую справочники, в некоторых из них записей намного больше.
Читается при этом файл одинаково. К ним вопросов нет, но как только SalesLine, все ax32.exe с ума сходит. Еще вопрос - На какие нужды он в принципе м.б. большие объемы памяти ? |
|
01.04.2004, 15:44 | #9 |
Участник
|
|
|
02.04.2004, 06:33 | #10 |
Участник
|
О , великий и могучий MDAC 2.8 !!!!
Хоть у меня процессор caleron , но помог именно он. Спасибо всем большое !!! |
|
|
Похожие темы | ||||
Тема | Ответов | |||
memory leak in Axapta 3.0 | 1 | |||
SmartHeap out of Memory при работе пакетного сервера | 4 | |||
findRecord - Out of memory | 30 | |||
Smartheap Library out of memory | 11 | |||
Ошибка "Memory could not be "read" | 14 |
|