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.

docnext count = 6

Paramètres DECLARE FILTER

La phrase ENTRY_POINT spécifie le nom du point d’entrée (nom de la fonction à exporter) dans le module.

La phrase MODULE_NAME indique le nom du module où se trouve la fonction exportée. Par défaut, les modules doivent être situés dans le dossier UDF du répertoire racine du serveur. Le UDFAccess dans le fichier firebird.conf permet de modifier les restrictions d’accès aux bibliothèques de filtres.

Qui peut créer un filtre BLOB ?

L’instruction DECLARE FILTER peut être exécutée :

L’utilisateur qui a créé le filtre BLOB en devient le propriétaire.

Exemples

Example 1. Création d’un filtre BLOB utilisant des numéros de sous-type
DECLARE FILTER DESC_FILTER
INPUT_TYPE 1
OUTPUT_TYPE -4
ENTRY_POINT 'desc_filter'
MODULE_NAME 'FILTERLIB';
Example 2. Création d’un filtre BLOB à l’aide de mnémoniques de sous-type
DECLARE FILTER FUNNEL
INPUT_TYPE blr OUTPUT_TYPE text
ENTRY_POINT 'blr2asc' MODULE_NAME 'myfilterlib';
Voir aussi :

DROP FILTER.

DROP FILTER

Objectif

Suppression d’une annonce de filtre BLOB.

Disponible en

DSQL, ESQL

Syntaxe
DROP FILTER filtername
Table 1. Paramètres de l’opérateur DROP FILTER
Paramètre Description

filtername

Le nom du filtre BLOB.

L’instruction DROP FILTER supprime la déclaration du filtre BLOB de la base de données. La suppression du filtre BLOB de la base de données le rend indisponible de la base de données, tandis que la bibliothèque dynamique où se trouve la fonction de conversion reste intacte.

Qui peut supprimer un filtre BLOB ?

L’instruction DROP FILTER peut être exécutée :

  • Administrateurs

  • Propriétaire du filtre BLOB ;

  • Utilisateurs avec le privilège DROP ANY FILTER.

Exemples

Example 1. Suppression du filtre BLOB
DROP FILTER DESC_FILTER;
Voir aussi :

DECLARE FILTER.