Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → FILTER
Firebird Home Firebird Home Zurück: EXTERNAL FUNCTIONFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: SEQUENCE (GENERATOR)

FILTER

Inhaltsverzeichnis

DECLARE FILTER
DROP FILTER

Ein BLOB FILTER-Filter ist ein Datenbankobjekt, das eigentlich ein spezieller Typ einer externen Funktion ist, mit dem alleinigen Zweck, ein BLOB-Objekt in einem Format zu verwenden und es zu konvertieren zu einem BLOB-Objekt in einem anderen Format. Die Formate der BLOB-Objekte werden mit benutzerdefinierten BLOB-Subtypen angegeben.

Externe Funktionen zum Konvertieren von BLOB-Typen werden in dynamischen Bibliotheken gespeichert und bei Bedarf geladen.

Weitere Informationen zu BLOB-Subtypen finden Sie unter Binäre Datentypen.

DECLARE FILTER

Benutzt für:  Deklarieren eines BLOB-Filters zur Datenbank

Verfügbar in: DSQL, ESQL

Syntax: 

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
        

Tabelle 5.30. DECLARE FILTER Statement-Parameter

Parameter Beschreibung
filtername Name des Filters in der Datenbank. Es kann aus bis zu 31 Zeichen bestehen. Es muss nicht derselbe Name sein, wie der aus der Filterbibliothek via ENTRY_POINT geholt wird.
sub_type BLOB-Subtype
number BLOB SUB_TYPE-Nummer (muss negativ sein)
mnemonic BLOB SUB_TYPE mnemonischer Name
function_name Der exportierte Name (Einstiegspunkt) der Funktion
library_name Der Name des Moduls, in dem sich der Filter befindet
user_defined Benutzerdefinierter BLOB SUB_TYPE mnemonischer Name


Mit der Anweisung DECLARE FILTER wird ein BLOB-Filter für die Datenbank verfügbar. Der Name des BLOB-Filters muss unter den Namen von BLOB-Filtern eindeutig sein.

Spezifizieren der Subtypen

Die Subtypen können als Untertypnummer oder als Subtyp-Mnemonikname angegeben werden. Benutzerdefinierte Subtypen müssen durch negative Zahlen (von -1 bis -32.768) dargestellt werden. Ein Versuch, mehr als einen BLOB-Filter mit derselben Kombination der Ein- und Ausgabetypen zu deklarieren, schlägt mit einem Fehler fehl.

INPUT_TYPE:  Klausel, die den BLOB-Subtyp des zu konvertierenden Objekts definiert

OUTPUT_TYPE:  Klausel definiert den BLOB-Subtyp des zu erstellenden Objekts.

Anmerkung

Mnemonische Namen können für benutzerdefinierte BLOB-Subtypen definiert und manuell in die Systemtabelle RDB$TYPES eingefügt werden.

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

Nachdem die Transaktion bestätigt wurde, können die mnemonischen Namen in Deklarationen verwendet werden, wenn Sie neue Filter erstellen.

Der Wert der Spalte RDB$FIELD_NAME muss immer 'RDB$FIELD_SUB_TYPE' sein. Bei mnemonischen Namen in Großbuchstaben können sie bei der Definition eines Filters case-insensitiv und ohne Anführungszeichen verwendet werden.

Warning:  Ab Firebird 3 sind die Systemtabellen nicht mehr von Benutzern beschreibbar.

Parameters

ENTRY_POINT:  Klausel, die den Namen des Einstiegspunkts (den Namen der importierten Funktion) im Modul definiert.

MODULE_NAME:  Die Klausel definiert den Namen des Moduls, in dem sich die exportierte Funktion befindet. Standardmäßig müssen sich die Module im UDF-Ordner des Stammverzeichnisses auf dem Server befinden. Der Parameter UDFAccess in firebird.conf ermöglicht das Bearbeiten von Zugriffsbeschränkungen für Filterbibliotheken.

* * * * * * * * * * * * * * * * * * * * *

 Jeder Benutzer, der mit der Datenbank verbunden ist, kann einen BLOB-Filter deklarieren.

Beispiele: 

  1. Erstellen eines BLOB-Filters mit Subtypnummern.
    DECLARE FILTER DESC_FILTER
    INPUT_TYPE 1
    OUTPUT_TYPE -4
    ENTRY_POINT 'desc_filter'
    MODULE_NAME 'FILTERLIB';
                
  2. Erstellen eines BLOB-Filters mit Untertyp-Mnemoniknamen.
    DECLARE FILTER FUNNEL
    INPUT_TYPE blr OUTPUT_TYPE text
    ENTRY_POINT 'blr2asc' MODULE_NAME 'myfilterlib';
                

Siehe auch:  DROP FILTER

DROP FILTER

Benutzt für:  Entfernen einer BLOB-Filterdeklaration aus der Datenbank

Verfügbar in: DSQL, ESQL

Syntax: 

DROP FILTER filtername;
        

Tabelle 5.31. DROP FILTER Statement-Parameter

Parameter Beschreibung
filtername Filtername in der Datenbank


Die Anweisung DROP FILTER entfernt die Deklaration eines BLOB-Filters aus der Datenbank. Wenn Sie einen BLOB-Filter aus einer Datenbank entfernen, kann er für diese Datenbank nicht mehr verwendet werden. Die dynamische Bibliothek, in der sich die Konvertierungsfunktion befindet, bleibt erhalten und das Entfernen aus einer Datenbank hat keine Auswirkungen auf andere Datenbanken, in denen derselbe BLOB-Filter noch deklariert ist.

 Jeder Benutzer, der mit der Datenbank verbunden ist, kann einen BLOB-Filter löschen.

Beispiel:  Löschen eines BLOB-Filters.

DROP FILTER DESC_FILTER;
          

Siehe auch:  DECLARE FILTER

Zurück: EXTERNAL FUNCTIONFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: SEQUENCE (GENERATOR)
Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → FILTER