Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Вызов фильтров BLOB

Вызов фильтров BLOB

Преобразование из INPUT_TYPE В OTPUT_TYPE происходит автоматически, когда вызывается модуль MODULE_NAME с параметрами, которые были определены с корректными номерами подтипов.

Предположим, вы создаете библиотеку с именем filters.so или filters.dll, которая находится в допустимом для библиотек фильтров BLOB месте на сервере. В этой библиотеке у вас есть функция xmi_to_rtf, которая принимает BLOB, принимает текст, размеченный как XML, передает его программе, которая преобразует его в документ RTF, и, наконец, возвращает результат в новый BLOB. Вы сохраняете документы XML в BLOB SOB_TYPE -10, а тексты RTF в BLOB SUB_TYPE -15.

Во-первых, вы должны объявить фильтр BLOB В базе данных:

DECLARE FILTER XML2RTF /* ваш выбор имени */

INPUT_TYPE -10 /* текст, размеченный как XML */

OUTPUT_TYPE -15

/* текст RTF, форматированный по правилам компании */

ENTRY_POINT 'xml_to_rtf'

/* точка входа для подпрограммы преобразования */

MODULE_NAME 'filters';

/* имя библиотеки фильтров BLOB */

Теперь в вашем SQL или PSQL все, что вам нужно для автоматического вызова преобразования, это переменная или столбец базы данных, определенный как BLOB SUB_TYPE -10, содержащий ваш замечательный, правильный документ XML, и переменная или столбец подтипа -15 для получения конвертированного документа.

! ! !

СОВЕТ. Включенные в набор Firebird специальные внутренние фильтры BLOB выполняют преобразование подтипа 0 в подтип 1 (текст) и подтипа 1 в подтип 0. Эти фильтры также могут преобразовывать данные BLOB любого подтипа Firebird - например, BLR=2 в подтип 1 (текст), что может быть полезным для получения содержимого столбца системной таблицы в приложении управления базой данных. В подтипе 1 блоки сегментированы с первого символа до символа начала новой строки, со следующего символа до другого символа начала строки и т.д.

. ! .

Оглавление книги


Генерация: 2.074. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз