Klauseln und Schlüsselwörter
RETURNS
-Klausel-
(Erforderlich) gibt den von der Funktion zurückgegebenen Ausgabeparameter an.Eine Funktion ist skalar, sie gibt einen Wert (Ausgabeparameter) zurück.Der Ausgabeparameter kann einen beliebigen SQL-Typ (außer einem Array oder einem Array-Element) oder ein nullterminierter String (
CSTRING
) sein.Der Ausgabeparameter kann als Referenz (Standard), als Deskriptor oder als Wert übergeben werden.Wenn die KlauselBY DESCRIPTOR
angegeben ist, wird der Ausgabeparameter vom Deskriptor übergeben.Wenn die KlauselBY VALUE
angegeben ist, wird der Ausgabeparameter als Wert übergeben. PARAMETER
-Schlüsselwort-
gibt an, dass die Funktion den Wert des Parameters unter der Nummer param_num zurückgibt.Es ist notwendig, wenn Sie einen Wert vom Datentyp
BLOB
zurückgeben müssen. FREE_IT
-Schlüsselwort-
bedeutet, dass der zum Speichern des Rückgabewerts zugewiesene Speicher freigegeben wird, nachdem die Funktion ausgeführt wurde.Es wird nur verwendet, wenn der Speicher im UDF dynamisch allokiert wurde.In einem solchen UDF muss der Speicher mit Hilfe der Funktion
ib_util_malloc
aus dem Modulib_util
allokiert werden, eine Voraussetzung für die Kompatibilität mit den im Firebird-Code verwendeten Funktionen und im Code der ausgelieferten UDF-Module zum Zuweisen und Freigeben von Speicher. ENTRY_POINT
-Klausel-
gibt den Namen des Einstiegspunkts (den Namen der importierten Funktion) an, wie er aus dem Modul exportiert wurde.
MODULE_NAME
-Klausel-
definiert den Namen des Moduls, in dem sich die exportierte Funktion befindet.Der Link zum Modul sollte nicht der vollständige Pfad und die Erweiterung der Datei sein, wenn dies vermieden werden kann.Wenn sich das Modul am Standardspeicherort (im
../UDF
-Unterverzeichnis des Firebird-Server-Roots) oder an einem explizit infirebird.conf
konfigurierten Speicherort befindet, erleichtert es das Verschieben der Datenbank zwischen verschiedene Plattformen.Der ParameterUDFAccess
in der Datei firebird.conf ermöglicht die Konfiguration von Zugriffsbeschränkungen auf externe Funktionsmodule.
Jeder mit der Datenbank verbundene Benutzer kann eine externe Funktion (UDF) deklarieren.