Главная страница
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.5 MB
Время: 0.024 c
15-1190197815
Sergey13
2007-09-19 14:30
2007.10.21
Сегодня самый известный сетевой символ — смайлик — отмечает юбиле


15-1190265156
vrem
2007-09-20 09:12
2007.10.21
что бы в досе не гудел!


1-1186667073
tytus
2007-08-09 17:44
2007.10.21
FastReport 4 как объединить несколько TfrxMemoView?


15-1190466131
mikezubr
2007-09-22 17:02
2007.10.21
{$E .XXXXXXX}


2-1190878907
Makavelli
2007-09-27 11:41
2007.10.21
Помогите