BLOB-данные

Формат представления BLOB-данных следующий:

<​формат BLOB-данных​>::=
<​тип​>::=
целое положительное число в диапазоне от 0 до 255, идентифицирующее тип BLOB-данных (например, 0 – текстовые данные, 1 – графические, 2 – музыкальные записи и т.п.). Значение может быть использовано для фразового индекса. Оно СУБД ЛИНТЕР не контролируется;
<​файл​>::=
полная или частичная спецификация (путь к каталогу и имя) файла, содержащего импортируемые BLOB-данные. Если тип файла не задан, по умолчанию используется .blb.
<​смещение​>::=
целое положительное число, задающее номер байта в файле, с которого начинается порция BLOB-данных. Если параметр не задан, по умолчанию принимается 0 (с начала BLOB-файла);
<​длина​>::=
целое положительное число, задающее размер порции BLOB-данных в байтах. Параметры <​смещение​> и <​длина​> должны быть либо оба заданы, либо оба пропущены.

Для поиска местоположения BLOB-файлов применяется следующий алгоритм:

  • если ключ -b задан, то BLOB-файлы ищутся в том каталоге, который специфицирован этим ключом. В подобном случае <​BLOB-каталог​> должен содержать только имя BLOB-файла;

  • если ключ -b не задан, то BLOB-файл ищется в том каталоге, спецификация которого образуется путем присоединения к текущему каталогу (в котором выполняется утилита loarel) строки <​файл​>. Например, утилита loarel была запущена на выполнение из каталога c:\linter\. <​Файл​> имеет значение db_store\bank\0000001.blb, следовательно, путь к BLOB-файлу будет иметь вид:

    c:\linter\db_store\bank\0000001.blb;

BLOB-данные в импортируемом файле могут быть представлены тремя способами:

  1. для каждой записи таблицы в импортируемом файле приводится ссылка на уникальный файл с BLOB-данными (например, экспорт таблицы выполнялся с разделением BLOB-данных);

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

  3. смешанный (присутствуют одновременно два предыдущих способа).

Примеры
запись 1 ← 0001.blb
запись 2 ← 0002.blb
…
запись N ← 000N.blb
                      смещение   длина
запись 1 ← imp.blb    0          1000
запись 2 ← imp.blb    1000       4000
…
запись N ← imp.blb    50600      10000
                      смещение   длина
запись 1 ← 0001.blb
запись 2 ← imp.blb    1000       4000
запись 3 ← imp.blb    34000      2700
запись 4 ← abc.txt    0          5000
…
запись N ← abc.txt    50600      10000