Looking again at the Firebird 3 release notes, it looks like I overlooked the extent of the use of the new DPB item code "isc_dpb_config". This is used at database connection time to provide a list of client side configuration overrides in the same syntax as "firebird.conf". Wire Compression is only one of the overrides that may be applied - e.g. use of Wire Encryption is another. I have added a new property to both TIBDatabase and TIBXServicesConnection to allow client side configuration overrides to be provided. This is now included in the development version of IBX which may be viewed at:
https://svn.mwasoftware.co.uk/viewvc/public/ibx/trunk/To check out, install subversion and enter the following at a command line (should work on both Windows and Linux).
svn co
https://svn.mwasoftware.co.uk/public/ibx/trunk/ ibx
Lazarus 2.0.0 RC3 is recommended for this update, but earlier versions should work.
The corresponding changelog entry is:
IBX Change Log version (2.3-3 Build 11288) Fri, 28 Dec 2018 10:04:17 +0000
1. New property for TIBDatabase and TIBXServicesConnection. This is "ConfigOverrides"
and is used to override the default settings in the client side "firebird.conf" This
includes "WireCompression" and "WireCrypt". The value of this property is a "TStrings".
Each line of the string list should be a setting in the same format as "firebird.conf".
For example "WireCompression = true" in order to request wire compression on the client side.
Note: explicit settings in the client side "firebird.conf" appear to take precedence
over settings given in TIBDatabase and TIBXServicesConnection. Many client side settings
also require a compatible setting in the server side "firebird.conf". For example
"WireCompression = true" must also be set in the server's "firebird.conf" for wire
compression to be used.
Whether or not WireCompression or WireCrypt are in use can be checked using the information
returned with the Client/Server protocol version. See ibx/examples/dbadmin and
ibx/examples/dbinfo for examples of how to display this information.
2. New property for TIBDatabase and TIBXServicesConnection: "WireCompression". This
is a "convenience" property. If checked then the setting "WireCompression=true" is added to the
ConfigOverrides. If unchecked then this setting is removed.
Documentation should now be up-to-date. The TIBDatabase and TIBXServicesConnection property editors are also updated.
Note: with Firebird 3 before 3.0.4, the only way to check whether Wire Compression or encryption is in use is to get the Client/Server version and protocol information using the IAttachment interface method "getFBVersion", and inspect the second and third lines. Both the DBAdmin and DBInfo example applications provide an example of use. The information returned is the same as calling isql with the "-z" option. The second and third lines will end in "Z" is compression is used, "CZ" if both encryption and compression is in use and "C" if encryption only is in use.