Note
|
Externe Funktionen (UDFs) wurden in Firebird 4.0 aggressiv als veraltet deklariert:
-
Die Standardeinstellung für den Konfigurationsparameter UdfAccess ist None .Um UDFs überhaupt ausführen zu können, ist nun eine explizite Konfiguration von Restrict Verzeichnisliste . erforderlich
-
Die UDF-Bibliotheken (ib_udf , fbudf ) werden nicht mehr in den Installationskits verteilt
-
Die meisten Funktionen in den Bibliotheken, die zuvor in den gemeinsam genutzten (dynamischen) Bibliotheken ib_udf und fbudf verteilt wurden, wurden bereits durch eingebaute funktionale Analoga ersetzt.Einige verbleibende UDFs wurden entweder durch analoge Routinen in einer neuen Bibliothek von UDRs namens udf_compat ersetzt oder in gespeicherte Funktionen umgewandelt.
Einzelheiten und Anweisungen zum Upgrade zur Verwendung der sicheren Funktionen finden Sie unter Deprecation of External Functions (UDFs) im Kapitel Compatibility der Firebird 4.0 Release Notes.
-
Der Austausch von UDFs durch UDRs oder gespeicherte Funktionen wird dringend empfohlen
|
Externe Funktionen, auch bekannt als “User-Defined Functions” (UDFs) sind Programme, die in einer externen Programmiersprache geschrieben und in dynamisch geladenen Bibliotheken gespeichert sind.Einmal in einer Datenbank deklariert, stehen sie in dynamischen und prozeduralen Anweisungen zur Verfügung, als wären sie in der Sprache SQL implementiert.
Externe Funktionen erweitern die Möglichkeiten der Datenverarbeitung mit SQL erheblich.Um einer Datenbank eine Funktion zur Verfügung zu stellen, wird sie mit der Anweisung DECLARE EXTERNAL FUNCTION
deklariert.
Die Bibliothek, die eine Funktion enthält, wird geladen, wenn eine darin enthaltene Funktion aufgerufen wird.
Note
|
Externe Funktionen, die als EXTERNAL FUNCTION deklariert wurden, sind ein Erbe früherer Versionen von Firebird.Ihre Fähigkeiten sind den Fähigkeiten des neuen Typs externer Funktionen, UDR (User-Defined Routine), unterlegen.Solche Funktionen werden als CREATE FUNCTION … EXTERNAL … deklariert.Siehe CREATE FUNCTION für Details.
|
Note
|
Externe Funktionen können in mehr als einer Bibliothek enthalten sein — oder “Modul”, wie es in der Syntax genannt wird.
|
Caution
|
UDFs sind grundsätzlich unsicher.Wir empfehlen, ihre Verwendung nach Möglichkeit zu vermeiden und UDFs in Ihrer Datenbankkonfiguration zu deaktivieren (UdfAccess = None in firebird.conf ; dies ist die Standardeinstellung seit Firebird 4).Wenn Sie nativen Code aus Ihrer Datenbank aufrufen müssen, verwenden Sie stattdessen eine externe UDR-Engine.
|