Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TXMLDocument и Out of memory [WinXP]


n199a ©   (2012-03-27 20:22:00) 

Доброго времени суток.

Использую Delphi2007.
Создаю xml посредством TXMLDocument. Создаю ноду и записываю в нее большое значение (в данном случаe большое это строка размером 180мб):


 FDataNode := FXMLDocument.CreateNode('CDATA Node. Temporary value', ntCData);
 FRootNode.ChildNodes.Add(FDataNode);
 FDataNode.NodeValue := FLargeStringVariable;


где:
FXMLDocument - TXMLDocument
FRootNode - FXMLDocument - родительская нода
FDataNode - FXMLDocument - нода с данными
FLargeStringVariable - string размером 180 мб.

собственно в момент FDataNode.NodeValue := FLargeStringVariable; получаю ошибку "Out of memory". Если посмотреть в FXMLDocument.XML.Text то видно что значение созданной ноды - 'CDATA Node. Temporary value', т.е. действительно присвоение не отработало.

Как решить проблему?
Есть ли хорошие альтернативы TXMLDocument? Какие?


Ega23   (2012-03-28 14:41:00) [1]


> Ясно. Очень помогло.


Не за что, обращайся.


Cobalt   (2012-03-28 13:56:00) [2]

Альтернативы зависят от того, что ты делаешь и где.
и какие у тебя ограничения.


n199a   (2012-03-28 13:02:00) [3]


> существенная. Может быть в 4 раза.


Ясно. Очень помогло.


Ega23   (2012-03-28 12:34:00) [4]


> мм. а какая разница?

существенная. Может быть в 4 раза.


n199a   (2012-03-28 12:29:00) [5]

мм. а какая разница? В любом случае мне не ясно как содержиоме засунуть в ноду


tesseract   (2012-03-27 21:23:00) [6]

string в 180 метров? Может лучше BLOB использовать?


n199a   (2012-03-27 20:24:00) [7]


> где:
> FXMLDocument - TXMLDocument
> FRootNode - FXMLDocument - родительская нода
> FDataNode - FXMLDocument - нода с данными
> FLargeStringVariable - string размером 180 мб.


Прошу прощения, правильно читать:

где:
FXMLDocument - TXMLDocument
FRootNode - IXMLNode - родительская нода
FDataNode - IXMLNode - нода с данными
FLargeStringVariable - string размером 180 мб.

(не сработал копипаст с виртуальной машины(, а визуальная проверка подвела)


Наверх

Титульная страница Поиск, карта сайта Написать письмо