MWA Software is pleased to announce the release of version 2.4.0 of IBX for Lazarus. This version supports the new Firebird 4 data types and has been tested with the latest version of lazarus (2.0.12) and FPC (3.2.0). All users are recommended to upgrade to this version. It is available for download from
The new Firebird data types supported are: TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE, INT128, DECFLOAT and extended precision NUMERIC fields. Due to recent changes to the Firebird 4 API, no version of Firebird 4 less than Firebird 4 rc1 is supported.
See the updated user guide for more information on how to use these new data types.
A major addition to IBX 2.4.0 for lazarus is the inclusion of a comprehensive testsuite. This is not included in the distribution archives, but can be downloaded from our svn repository (https://www.mwasoftware.co.uk/svn-repository).
The testsuite is intended to provide a set of tests with a pass/fail result determined by a simple inspection of the “diff” file. It uses the same approach as the existing testsuite for the Firebird Pascal API, also bundled in with IBX for Lazarus.
The testsuite comprises 28 separate tests, testing 230 identified features present in the IBX non-visual components. It is intended to provide comprehensive test coverage of all test features in order to demonstrate a high degree of confidence that the software performs as expected and when run on different platforms (32 bit and 64 bit, Linux and Windows) and with different versions of the Firebird database (2.5, 3 and 4). It also supports regression testing. See doc/TestCoverage.pdf for a list of tests and test features and which test covers which test features. The file ibx/testsuite/readme.txt contains information on how to run the test suite.
Version 2.4.0 has been tested using the testsuite for Firebird 2.5.9, Firebird 3.0.5 and Firebird 4 rc1 in various combinations of 32-bit and 64-bit Linux and Windows platforms, and with recent versions of FPC.
MWA Software is pleased to announce that release 2.2.0 of IBX for Lazarus is now available for download from mwasoftware.co.uk/ibx. This is an important update to IBX and all users are recommended to upgrade to the new release. Please read the changelog before upgrade.
The main intent behind the release is to add support for the remaining Firebird 3 features (and some from earlier Firebird releases) that were not supported in release 2.1. This includes:
- Support for SQL Statements INSERT/UPDATE/DELETE…RETURNING. The first two cases are now able to update the current row for all TIBCustomDataset descendents including TIBTable, using data returned following a row insert or update.
- INSERT…RETURNING is used to provide support for Firebird “Identity” columns. For example, when used to provide auto-increment primary keys.
- Firebird “Packages” are now supported by TIBStoredProc and by the SQL Component Editors.
- Additional Firebird 3 properties are now supported by TIBDatabaseInfo and by the Services API components (e.g. TIBConfigService).
- Alternative Security Databases are now supported by the Services API Components.
- TIBExtract now supports DDL Grants and triggers on database objects.
- A new IBServices component to support online validation of a database (TIBOnlineValidationService).
- A major new example application (DBAdmin) is now included. This illustrates the use of IBX for Day-to-Day Database Administration tasks including User Management, Backup/Restore and Database Validation and Repair. It is also intended to provided a useable application that users may use directly or incorporate into their own toolsets. It also demonstrates User Management using Firebird 3 virtual tables and SQL statements. Note: this application also requires the standard Lazarus package MemDSLaz.
This release also incorporates recent bug fixes and includes a 33 page guide to the use of IBX for Firebird DBA activities.
IBX for Lazarus may be downloaded from: www.mwasoftware.co.uk/ibx
or by subversion from:
MWA Software’s Firebird Pascal Client API package (fbintf) release 1.0.2 is now available for download. The package has been updated to support Delphi Win32 (from Delphi 2010 onwards) in addition to the Free Pascal Compiler (3.0.0 onwards). The package is otherwise functionally identical to release 1.0.1.
The Firebird Pascal Client API package provides common Pascal language bindings to the Firebird API that are independent of the Firebird API version. Both legacy and Firebird 3 APIs are supported. The fbintf package provides the Firebird API in a format where all data types for SQL data, interface parameters and results are native Pascal types, including all parameter blocks and database information. The Pascal API is pitched at a similar level and purpose to the IBPP Firebird API provided to the C++ world. It is a required dependency for version 2 onwards of IBX for Lazarus, and is provided as both a standalone package and as part of IBX2.
The Firebird Pascal API is intended to be simple to use and to place the minimum burden on the API user when it comes to managing the Firebird client library and the various Pascal objects that are created to provide the API. It is implemented as reference counted COM interfaces which, for the API user, are as easy to use as other managed types such as AnsiStrings and dynamic arrays. The user only needs to worry about accessing and using the interface; disposing of interfaces is performed automatically whenever an interface goes out of scope. It is intended to be a full implementation of the Firebird API, including events, services, blobs and arrays.
It is distributed under the IDP Licence.
The package may be downloaded from https://www.mwasoftware.co.uk/fb-pascal-api
A comprehensive user manual fully describing the API is available from https://www.mwasoftware.co.uk/documentation
Tony announced new version, IBX for Lazarus 1.1 is now available from
See announcement in the 3rd party Lazarus forum for the change log.
Performance increased with 30-50% in some cases.
Many thanks to Gabor for pointing out the performance issues and for testing updates. This kicked me into cleaning up this part of the code and rationalising the way that IBX handles column names with spaces and special characters in them.
Lars (from Compas Pascal blog) talks about the usage of IBX with Firebird databases. Don’t forget to check the comments for interesting information about compatibility.
Jeff Overcash originally made it clear, that IBX doesn’t officially support Firebird, and he has no intention to implement it. Many point at IBObjects and now DBExpress for Firebird support, so why use IBX? Here’s a reason