Функции позволяющие корректно читать и писать текст в BLOB
function WriteTextToBLOB(DataField, Text){ var Stream =new ActiveXObject("ADODB.Stream");
Stream.Open();
Stream.Type=2;
Stream.WriteText(Text);
DataField.SetValAsBlob(Stream);
Stream.Close(); }
/*ReadType Принимает следующие значения
-1 Вычитать все символы (по умолчанию)
-2 Прочитать Строку
Любое другое число - прочитать указанное количество символов*/ function ReadTextFromBLOB(DataField, ReadType){ if(ReadType == undefined){
ReadType =-1; } var Stream =new ActiveXObject("ADODB.Stream");
Stream.Open();
Stream.Type=2;
DataField.GetValAsBlob(Stream);
Stream.Position=0; var Result = Stream.ReadText(ReadType);
Stream.Close(); return Result; }
Вот такой вопрос:
Есть картинка (jpeg), хранится в БД.
Пытаюсь вашим способом прочитать ее как текст - получаю несколько квадратиков и все...
Если же поставить тип потока == 1. То на методе ReadText выдает "Операция не допускается в данном контексте".
А метод Read(-1) возвращает null.
Подскажите как можно получить картинку в виде текста? Аля виндовый "Как текст".
Данный блог касается возможности хранения в поле таблицы текста, который не помещается в обычное поле. Сначала текст конвертируется в формат BLOB и записывается в поле таблицы, а при необходимости его можно оттуда получить (в текстовом формате без каких-либо потерь) с помощью другой функции.
Честно говоря, никогда не слышал о возможности конвертировать картинки в текстовый формат. Уточните, пожалуйста, какие картинки имелись в виду. Возможно, Вашу задачу можно решить другим способом?
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.