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