Текущий архив: 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.49 MB
Время: 0.046 c