Как записать текст в поле Blob (большой бинарный объект)?
Бывает необходимо записать в таблицу текст больше 4000 символов. Для этого необходимо использовать поле с типом BLOB.
Вот тестовый пример как это реализовать:
1. Создайте таблицу tbl_BlobFields, добавьте в него поле Blob соответствующего типа.
2. Создайте SelectQuery - sq_BlobFields.
3. Выполните скрипт:
var Dataset = SelectQuery.Open();
Dataset.Append();
var Stream = new ActiveXObject('ADODB.Stream');
Stream.CharSet = 'windows-1251';
Stream.Mode = 3;
Stream.Type = 2;
Stream.Open();
Stream.WriteText('Тестовая строка');
var Field = Dataset.DataFields.ItemsByName('Blob');
Field.SetValAsBlob(Stream);
Stream.Close();
Dataset.Post();
4. Проверьте результат:
Еще немного о объекте ADODB.Stream:
Параметр Stream.Type может принимать значения 1(binary) или 2(text), в зависимости от типа данных, содержащихся в файле.
С помощью параметра Stream.CharSet управляют кодировкой чтения/записи данных в файл. Доступные для данной ОС кодировки перечислены в системном реестре HKEY_CLASSES_ROOT\MIME\Database\Charset.
С помощью параметра Stream.Mode осуществляется управление режимом работы с данными файла. Основные принимаемые значения – 1 (чтение – по умолчанию), 2 (запись) и 3 (чтение/запись).