Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Поддерживаемые типы BLOB
Поддерживаемые типы BLOB
Firebird имеет два предварительно определенных типа BLOB, отличающиеся атрибутом подтипа (ключевое слово в SQL SUB_TYPE), как описано в табл. 12.1.
Таблица 12.1. Предварительно определенные подтипы BLOB
Определение |
Алиас SQL |
Назначение |
BLOB SUB_TYPE 0 |
Не используется |
Общий тип BLOB данных любого вида, включая текст. Общее название: "нетипизированный двоичный BLOB", однако Firebird ничего не знает о его содержании |
BLOB SUB_TYPE 1 |
BLOB SUB_TYPE TEXT |
Более специализированный подтип для хранения полного текста. Эквивалентен типам CLOB и MEMO, реализованных в некоторых других СУБД. Рекомендуется использовать с интерфейсами приложений, таких как компоненты RAD или поисковые машины, которые выполняют специальную трактовку для каждого типа |
Подробнее о подтипах
Подтип BLOB является положительным или отрицательным целым, которое указывает природу данных, содержащихся в столбце. Помимо двух предопределенных типов для общего использования Firebird имеет множество подтипов, которые он применяет для внутренних целей. Все эти внутренние подтипы имеют положительные номера.
Пользовательские подтипы могут быть добавлены с отличающимися идентификаторами особых типов для объектов данных, таких как HTML, XML или текстовый процессор, картинки JPEG или PNG и т.д. - именно вам делать выбор. Отрицательные номера подтипов (от-1 до -32 768) резервируются для пользовательских подтипов.
Система подтипов BLOB также позволяет выполнять специфические преобразования одного подтипа в другой. Firebird осуществляет поддержку автоматического преобразования между парой подтипов BLOB в форме BLOB-фильтров. Фильтры BLOB являются специальным видом внешних функций с единственным назначением: получение объекта BLOB одного формата и преобразование его в объект BLOB другого формата. Возможно создание BLOB-фильтра для преобразования между пользовательским (отрицательным) и предварительно определенным подтипами - обычно TEXT.
Объектный код для BLOB-фильтров размещается в библиотеках коллективного доступа. Фильтр, вызываемый при необходимости динамически, распознается на уровне базы данных (не сервера) при его объявлении в метаданных:
DECLARE FILTER <имя-фильтра>
INPUT_TYPE <подтип> /* идентифицирует тип преобразуемого объекта */
OTPUT_TYPE <подтип> /* идентифицирует тип создаваемого объекта */
ENTRY_POINT '<имя-точки-входа>' /* имя экспортируемой функции */
MODULE_NAME '<имя-внешней-библиотеки>';
/* имя библиотеки BLOB-фильтра */
! ! !
ПРИМЕЧАНИЕ. Написание и использование BLOB-фильтров выходит за пределы тем настоящего руководства. Информацию по этой теме можно найти в базах знаний Firebird.
. ! .
Firebird не проверяет тип или формат данных BLOB. При планировании их хранения вы должны создать такой код вашего приложения, чтобы формат данных был согласован с их подтипом, неважно предварительно определенным или пользовательским.
- Поддерживаемые типы данных
- Типы BLOB
- Типы данных для работы с датой и временем
- Большие целые типы
- Типы страниц и их использование
- Новые функции API для работы с Blob и массивами
- 1.2.3. Константы, переменные и типы
- 4. Лекция: Типы данных
- 9.1. Классы и прототипы
- 4. Кортежи. Типы кортежей
- 5. Отношения. Типы отношений
- 1. Базовые типы данных