Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Midas Insufficient memory for this operation    Найти похожие ветки 

 
Лёля   (2007-06-12 17:46) [0]

Есть ClientDataSet, он связан с TXMLTransformProvider, для которого указан файл трансформации (TransformRead.TransformationFile = SomeFile.xtr). В цикле XMLTransformProvider"у указывается очередной файл XML, который нужно вычитать:
     ClientDataSet.Close;
     XMLTransformProvider.XMLDataFile := "SomeFileName.xml";
     ClientDataSet.Open;

где-то на десятой итерации вываливается с ошибкой "Insufficient memory for this operation". Попыталась употребить  MIDAS PATCH Version 2.07:
...This unit is a patch for the midas.dll. It is build to eliminate the "Insufficient memory for this operation"-error which can occur in midas
communication. An interesting side-effect of the patch is nice performance improvement...

И тоже не помогло. Что же делать и как быть?


 
Правильный Вася   (2007-06-12 17:51) [1]

версия какая? патч к этой версии пожходит? источник патча?


 
Лёля   (2007-06-12 19:02) [2]

midas.dll версии 6.0.10.157 (то есть патч подходит), взят с http://cc.codegear.com/Item/20524
можно взять отсюда http://slil.ru/24502565

Delphi 6.0 (Build 6.240) Update Pack 2


 
Правильный Вася   (2007-06-12 19:14) [3]

секция
// SELECTING MEMORY MANAGER
изучена?


 
Лёля   (2007-06-12 20:01) [4]

Ничего не отключала. Так и остается
{DEFINE HEAPALLOC}
{$DEFINE MEMMGR}
то есть DelphiMM. На всякий случай и в опциях проекта добавила MEMMGR


 
Лёля   (2007-06-12 20:04) [5]

с подключенным ShareMem - та же ситуация


 
Лёля   (2007-06-13 13:34) [6]

А дома Delphi7 и Turbo. midas.dll, соответственно, от Turbo - версия 10.0.2151.25345. Патч не применяю. Вылезают те же ошибки. Пробовала создавать/освобождать TClientDataSet динамически на каждой итерации. С тем же успехом валится там же.


 
Johnmen ©   (2007-06-13 14:04) [7]

Вы до сих пор пользуете midas.dll вместо юнита MidasLib? Тогда мы не идём к вам...


 
Лёля   (2007-06-13 14:26) [8]

а MidasLib разве не использует тот же функционал, что и в ДЛЛ? Мне сейчас пока не нужно переносить приложение на системы без midas.dll


 
Лёля   (2007-06-13 14:36) [9]

кстати, с MidasLib тоже сбоит


 
sniknik ©   (2007-06-13 14:43) [10]

а может всетаки не он? не мидас.
а ошибка в данных например, сам файл, десятый по счету  (на каком там сбой?) очень большой... глюк в программе (не только мидасу может памяти не хватать).
сделай новый проект с минимумом кода, только с открытием датасета, так сбоит?


 
Лёля   (2007-06-13 14:58) [11]

Хм... максимальный размер XML-файла меньше 500 кило. Его и выбрала для минимального проекта. Ну так и есть. 500 - это много. До этого пробовала на файлах меньшего размера. Спасибо, дорогой товарищ, что вовремя ткнули носом! Одна беда - и что теперь? Распарсивать вручную там не очень кузяво


 
Лёля   (2007-06-13 15:01) [12]

Но кстати, ругается все равно на мидас.длл


 
sniknik ©   (2007-06-13 16:29) [13]

> и что теперь?
вот тут есть упоминания парсеров, что не тянут весь файл в память...
http://delphimaster.net/view/15-1180862939/
можеш использовать их. а можеш заменить xml чем нибудь более подходящим для задачи (если вообще заменяемо, а не исходные данные в нем).


 
Правильный Вася   (2007-06-13 16:48) [14]

попробовать FastMM ?


> Вы до сих пор пользуете midas.dll вместо юнита MidasLib?

в описалове написано, что проблема однофигственно проявляется в обоих


 
sniknik ©   (2007-06-13 17:05) [15]

> попробовать FastMM ?
он что из 512мг оперативки 1024мг сделает? ну, пусть он оптимальнее работает с памятью, ну пусть выгадаешь 10, 20 или даже 100мг... и данный файл откроется (и даже немного больше)... а завтра придет(/получится) не на 100 а на 200 мг. больше... или программу надо будет запустить на другом компе с 384мг... и все по новой.

в общем не выход. даже если получится.


 
Лёля   (2007-06-13 18:15) [16]

Ага, FastMM не выход. Не получилось - файлик не открылся. Как с мидас-патчем, так и без него.
А оперативки и так гиг :)
XML незаменяем, поскольку в нем данные, а с парсерами в данной задаче гораздо больше головной боли (хотя и использую в других частях проекта).


 
sniknik ©   (2007-06-13 20:07) [17]

> А оперативки и так гиг :)
а компонентов то у тебя и так 2 которые, теоретически, могут держать полную копию данных...
+ "развернутые" данные могут занимать, и скорее занимают, места поболее чем исходные в файле... (это обьясняет куда девается виртуальная память из свопинга... а может с ней не умеет работать ктото из них)

если хочеш пришли проблемный файл, попробую на 2х гигах, если откроется то дело ясное будет в чем причина. (исключиться что данные запороты и т.д.)



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
10-1138264598
sam98
2006-01-26 11:36
2007.10.21
OPC клиент (передача серверу нескольких значений переменных)


2-1190891450
Yogan
2007-09-27 15:10
2007.10.21
Многопоточность


2-1190460474
vegarulez
2007-09-22 15:27
2007.10.21
Подскажите функцию для посчёта количества символов...


2-1190799956
Гелена
2007-09-26 13:45
2007.10.21
Как реализовать запрет деакривации дочернего окна в MDI-приложени


2-1190629809
click
2007-09-24 14:30
2007.10.21
Выделение мышью нескольких TImage й