Публикация

Запись и чтение текста из BLOB поля

Функции позволяющие корректно читать и писать текст в 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;                 
}

Нравится

Поделиться

2 комментария

Вот такой вопрос:
Есть картинка (jpeg), хранится в БД.
Пытаюсь вашим способом прочитать ее как текст - получаю несколько квадратиков и все...
Если же поставить тип потока == 1. То на методе ReadText выдает "Операция не допускается в данном контексте".
А метод Read(-1) возвращает null.
Подскажите как можно получить картинку в виде текста? Аля виндовый "Как текст".

Юрий, добрый день.

Данный блог касается возможности хранения в поле таблицы текста, который не помещается в обычное поле. Сначала текст конвертируется в формат BLOB и записывается в поле таблицы, а при необходимости его можно оттуда получить (в текстовом формате без каких-либо потерь) с помощью другой функции.

Честно говоря, никогда не слышал о возможности конвертировать картинки в текстовый формат. Уточните, пожалуйста, какие картинки имелись в виду. Возможно, Вашу задачу можно решить другим способом?

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Показать все комментарии