IBExpertFunctionLibrary

Eine benutzerdefinierte Funktion (UDF) wird verwendet, um Aufgaben auszuführen, die Firebird nicht ausführen kann. Es ist eine externe Datenbankfunktion, die komplett in einer anderen Sprache, wie z.B. C++ oder Pascal, geschrieben wurde, um Datenänderungen durchzuführen, die nicht direkt von Firebird/InterBase® unterstützt werden.

Wie viele Firebird Softwareentwickler wissen, helfen Ihnen diese Funktionen dabei, die SQL-Sprache nach Bedarf zu erweitern. Der Nachteil ist jedoch, dass die binäre Implementierung einen Compiler auf der Plattform erfordert, auf der Sie den Firebird Server verwenden. Eine UDF-Bibliothek, die für Win64 verfügbar ist, kann weder unter Win32 noch unter Linux verwendet werden.

Bis zu Firebird 2.5 war die UDF eine extrem leistungsfähige Implementierung, aber leider auch ein kritischer Fehlerpunkt. Wenn einer Ihrer Binärcodes nicht so stabil war, wie er sein sollte, insbesondere in Mehrbenutzerumgebungen, konnte er den Firebird Server komplett zum Absturz bringen. Alle Client-Verbindungen wurden getrennt, und obwohl die Datenbankdatei selbst keinen Binärfehler enthalten sollte, musste jeder Client neu verbunden werden. Dies mag in der Firebird Classic Version kein so großes Problem gewesen sein, aber heute wird die Verwendung einer binären UDF nicht mehr empfohlen.

Dies war der Grund für das Firebird Projekt, die neue und stabilere UDR-Implementierung einzuführen. Eine UDR scheint einer UDF ähnlich zu sein, aber sie wird auf eine wesentlich stabilere Art und Weise in den Serverprozess geladen, und ein Fehler in der Implementierung führt normalerweise nicht zum Absturz des Servers.

Seit Firebird 3 wird empfohlen, eine UDR statt einer UDF zu verwenden und ab Firebird 4 ist die Verwendung von UDFs in der Datei firebird.conf standardmäßig deaktiviert.

Eine weitere Implementierung für die funktionale Erweiterung von Firebird wurde ebenfalls mit Firebird 3 eingeführt: Stored Functions. Ähnlich wie die UDR/UDF-Funktionen kann eine Stored Function auf die gleiche Weise wie eine Stored Procedure implementiert werden, aber das Konzept der Funktionen liefert nur ein Ergebnis basierend auf den angegebenen Eingabeparametern.

Wie Sie vielleicht wissen, gibt es weit verbreitete UDF-Implementierungen, die allzu oft völlig veraltet sind, wie z. B. die FreeAdhocUDF-Bibliothek, die in den letzten 12 Jahren weder geändert noch verbessert wurde. Bibliotheken wie rFunc oder FreeAdhocUDF verwenden oft sehr hohe Know-How-Standards, aber, basierend auf Firebirds eingebauten Funktionen wie z.B. substring, ist die Parameterstruktur nicht eins-zu-eins kompatibel. Wenn Sie Ihre bestehende Firebird 2.x-basierte Software in einer neuen, nicht UDF-basierten Firebird Version 3 oder 4 verwenden möchten, benötigen Sie einen Ersatz.

Aus diesem Grund haben wir einen komplett neuen Satz von Funktionen mit dem Namen IBExpertFunctionLibrary entwickelt.

IBExpertFunctionLibrary Enterprise Maintenance Subscription

Ihr Unternehmen lizenziert den Quellcode der Bibliothek, wie er ist, aber es ist nur erlaubt, diesen mit Datenbanken zu verwenden, die von Ihrem Unternehmen für den internen oder Kundengebrauch erstellt wurden.

Dies beinhaltet den Zugriff auf alle neuen Versionen des Quellcodes für die folgenden 12 Monate und Sie können je nach Bedarf bis zu 5 neue Funktionsimplementierungen pro Jahr ohne zusätzliche Kosten bestellen.

Diese funktionalen Implementierungen sind auf die Sprachfeatures beschränkt, die bereits in der Firebird-Sprache möglich sind. Externe Software, die für die Implementierung benötigt wird, wie z.B. DLLs/SO oder andere Bibliotheken, sind davon nicht abgedeckt, können aber auf Anfrage ebenfalls implementiert werden.

Preisgestaltung

IBExpertFunctionLibrary Enterprise Maintenance Subscription: EUR 990,00

Die aktuelle Version 1.0 deckt im Grunde bereits fast alle Funktionen ab, die derzeit in FreeAdhocUDF und rFunc verfügbar sind. Einige Funktionen können nicht implementiert werden oder es macht keinen Sinn mehr, sie zu implementieren, aber diese werden als leere nicht-funktionale Prototypen verfügbar sein, so dass ein Aufruf nicht zu einem Fehler führt.

<< IBExpert Encryption Tool OEM für Firebird 3 und Firebird 4 | Sitemap | Free IBExpert Benchmark Tool >>