FirebirdSQL logo

DECLARE FILTER

Destination

Déclaration du filtre BLOB dans la base de données.

Disponible en

DSQL, ESQL

Syntaxe
DECLARE FILTER filtername
INPUT_TYPE <sub_type> OUTPUT_TYPE <sub_type>
ENTRY_POINT 'function_name' MODULE_NAME 'library_name';

<sub_type> ::= number | <mnemonic>

<mnemonic> ::= binary | text | blr | acl | ranges | summary |
               format | transaction_description |
               external_file_description | user_defined
Table 1. Paramètres de l’opérateur DECLARE FILTER
Paramètre Description

filtername

Nom du filtre. Peut contenir jusqu’à 63 caractères.

sub_type

Sous-type BLOB. Voir sous-types BLOB.

number

Numéro du sous-type BLOB. Voir BLOB subtypes.

mnemonic

Mnémonique de sous-type BLOB. Voir sous-types BLOB.

function_name

Nom de la fonction à exporter (point d’entrée).

library_name

Le nom du module dans lequel se trouve le filtre.

user_defined

Mnémonique défini par l’utilisateur pour le sous-type BLOB.

L’opérateur DECLARE FILTER rend un filtre BLOB disponible dans la base de données. Le nom du filtre BLOB doit être unique parmi les noms de filtres BLOB.

Définition des sous-types

Un sous-type peut être spécifié sous forme de numéro de sous-type ou de mnémonique de sous-type. Les sous-types personnalisés doivent être représentés par des nombres négatifs (de -1 à -32768). Il n’est pas permis de créer deux ou plusieurs filtres BLOB avec les mêmes combinaisons de types d’entrée et de sortie. La déclaration d’un filtre avec des combinaisons déjà existantes de types d’entrée et de sortie BLOB entraînera une erreur.

La phrase INPUT_TYPE identifie le type de l’objet à convertir (sous-type BLOB).

La phrase OUTPUT_TYPE identifie le type de l’objet à créer.

Note

Si vous souhaitez définir des mnémoniques pour vos propres sous-types de BLOB, vous pouvez les ajouter à la table système RDB$TYPES, comme indiqué ci-dessous. Une fois la transaction confirmée, les mnémoniques peuvent être utilisés pour la déclaration lors de la création de nouveaux filtres.

INSERT INTO RDB$TYPES (RDB$FIELD_NAME, RDB$TYPE, RDB$TYPE_NAME)
VALUES ('RDB$FIELD_SUB_TYPE', -33, 'MIDI');

La valeur de rdb$field_name doit toujours être 'RDB$FIELD_SUB_TYPE'. Si vous définissez des mnémoniques en majuscules, vous pouvez les utiliser sans tenir compte de la casse et sans les citer lors de la déclaration d’un filtre.