This is a beta version of MWA Software's Pascal Firebird API. This version includes support for User Defined Routines (UDRs). Documentation to follow. See udr/testsuite/udrlib for an example of how to build a udr library under Free Pascal or Delphi. This includes example UDRs that use the Firebird employee database. UDR support is provided by the new package "fbudr". This provides the additional support for building a UDR library. UDRs built with this package provide: - UDR Functions, Execute Procedures Select Procedures and Triggers. - Full use of the fbintf package (MWA's Pascal Firebird API). - Access to input and output parameters by name or position and as Pascal native types - Exception handling including use of the Firebird status vector to report exceptions to clients. Note that signal based exceptions (e.g. access violations) may result in lost database attachments. - Many configurable options. - A per UDR library log file (by default written to /.log) - Detailed and configurable logging for library debugging - User write to log support (see the IFBExternalContext interface). - A per UDR library configuration file in ini file format (by default the UDR library looks for its configuration file in /plugins/udr/.conf). - Log options may be configured statically or via the configuration file. - User sections and configuration parameters supported via the IFBExternalContext interface. A fbudrtestbed package is also provided to allow client side debugging of UDRs. This provides an emulator for the Firebird udr engine and allows for program logic to the tested using an IDR (Lazarus or Delphi). For an example see the udr/testsuite directory. This example shows how the example UDR library can be tested client side.