Добавление к Informix BLOB без нехватки памяти

Я пишу приложение С#, которое вставляет большой (1 ГБ +) объем данных в BLOB в базе данных informix.

Однако во многих случаях файл слишком велик, и процессу не хватает памяти. Я реализовал канал WCF Chunking Channel, чтобы смягчить это, но мне нужно поместить эти фрагменты в BLOB, не потребляя памяти для их хранения.

Как я могу добавить эти фрагменты в большой двоичный объект по мере их поступления вместо того, чтобы сначала буферизовать их все в памяти?

ТИА!


person Greg Olmstead    schedule 30.08.2010    source источник


Ответы (2)


Я не уверен, как это переводится на C#, но я думаю, что решение ESQL/C проиллюстрировано в Справочном руководстве по ESQL/C Приложение C и функции LO (большой объект) перечислены в Приложение B, а Глава 8 описывает, как их использовать.

В Руководстве поставщика Informix .NET (руководстве) есть раздел "Справочник по типам", включающий описание IfxBlob.

Если повезет, один или несколько из них должны помочь вам найти нужные ответы.

person Jonathan Leffler    schedule 01.09.2010

как оказалось, метод Write классов IfxBlob, похоже, записывает его непосредственно в LOB на сервере базы данных и, кажется, полностью пропускает память, поэтому не было необходимости в каких-либо хитростях.

person Greg Olmstead    schedule 16.09.2010