<< HK-Software Services Control Center | IBExpert | IBExpert new features archive >>

What's New?

IBExpert 2017.04.24

1. Table data comparer

  • Put BLOB values into script as hex strings option has been implemented.

If this option is enabled, the values of blob fields will be written directly into the result script in hexadecimal notation, i.e.


Hexadecimal notation for binary values is available in Firebird 2.5 and Firebird 3.

The length of the binary value, which may be encoded in hexadecimal notation is limited to 32765 bytes in Firebird 2.5 and to 65535 bytes in Firebird 3.

If the blob value exceeds the limit it will be written in the lob-file as is.

  • Include old values of fields option has been implemented.

If this option is enabled, old field values (for UPDATE statements) will be included into the result script as comments:


     SET INT_DATA = 57555,
         /* OLD.INT_DATA = 91186 */
         STR_DATA = 'some string value',
         /* OLD.STR_DATA = '' */
         STR_DATA2 = 'bla, bla',
         /* OLD.STR_DATA (trimmed) = 'comment...' */
         BLOB_DATA = :h15A73_4D
         /* OLD.BLOB_DATA = (BLOB) */
     WHERE (ID = 871); 

(trimmed) means that the old value contains a '*/' sequence which cannot be shown within a comment: IBExpert trims the rest of string and shows '...' instead.

2. Extract metadata

  • Put BLOB values into script as hex strings option has been implemented.

See notes above.

Additionally, if you extract data into the Script Executive or clipboard you may get a warning about skipped blobs if their length exceeds the limitation of the hexadecimal notation.

3. Table/View editor

  • The Field dependencies list now includes dependencies of foreign keys and referenced tables.

4. Database Explorer

  • Search in selected objects feature has been implemented.

This is a wrapper for the Tools / Search in metadata feature that allows you to search only in the metadata of selected objects. Just select the necessary objects in the Database Explorer tree and choose the Search in selected objects item in the tree context menu. This feature is also available in the dependencies trees of object editors and the Dependencies Viewer (Tools / Dependencies Viewer).

5. Code editors

  • The Parameters’ tip didn't show stored function (Firebird 3) arguments. This has been fixed.

6. Stored functions editor

  • The Code Insight list didn't show a function's local variables. This has been fixed.

7. Database Comparer

  • The problem with the safe conversion of BIGINT and INTEGER fields to DECIMAL/NUMERIC has been fixed.

8. IBEBlock

  • ibec_CompareTables function.

BlobsAsHex and IncludeOldValues options have been implemented. See description above.

  • ibec_ExtractMetadata function.

BlobsAsHex option has been implemented. See description above.

9. IBECallFBShutdown environment variable

  • FB 2.5 have introduced new API function fb_shutdown that clients should call before unloading (FreeLibrary) fbclient.dll when they don't need it anymore.

In some cases this may cause unexpected problems such as a connection shutdown" error.

Usually this may happen when your client application and IBEScript.dll share the same client library (fbclient.dll). In this case IBEScript.dll doesn't know that your application needs fbclient.dll and calls fb_shutdown before FreeLibrary.

Also sometimes FreeLibrary cannot unload fbclient.dll as expected and it remains in the client process memory but already in the shutdown state.

To avoid such problems we implemented the IBECallFBShutdown environment variable which controls the necessity to call the fb_shutdown function.

You can set value of this variable to FALSE to avoid calling the fb_shutdown function.


      execute ibeblock
        DB = ibec_CreateConnection(...);
        ibec_SetEnvironmentVariable('IBECallFBShutdown', FALSE);

In this case fb_shutdown will not be called after disconnect. This workaround is for Firebird 2.5 only, it is not necessary to use it with Firebird 3.

10. A lot of minor bug fixes and small improvements

back to top of page

IBExpert 2017.02.26

Mostly minor bug fixes and a number of minor improvements.

back to top of page

IBExpert 2017.01.15

(and Bugfix version 2017.01.25)

1. IBExpert Benchmark

  • The new category Thread Test calculates the percentage value for multi-threaded CPU tests with 5000 pages cache result to better see the advantages when using Firebird 3.

2. Table/Column Editors

  • It is now possible to specify the initial value for autoincrement fields (GENERATED BY IDENTITY, Firebird 3) and restart them with the specified value.

3. Autogrant feature

  • IBExpert didn't grant privileges for SELECT used in WHILE statement expression. It's fixed.

4. Trace/Audit feature

  • Problem with the incorrect parsing of Firebird 3 trace config has been fixed.

5. Code Editor Options

  • Custom colors for added/modified/deleted lines which are used when comparing two texts has been implemented.

6. Procedure/Trigger/Function Editors

  • Synchronization of a subroutine name has been implemented in the Code Editor and Names' list while editing subroutines in Lazy Mode.

7. Dependencies Viewer

  • References counter added for each object node.

8. Database Inside

  • Saving/restoring of target server version implemented.

9. Code Formatting

  • CRLF before/after and indent for ON keyword (JOIN clause) options implemented.

10. Compile Form

  • Multi-selection has been implemented in the list of statements.
  • It is now possible to open more than one object editor ([Enter] or using the context menu).

11. To Do List

  • Problem with invisibility of some values of To-Do items has been fixed.

12. Package and View Editors

  • AutoSave/AutoLoad features implemented.

13. Commit/Rollback Form

  • Has been redesigned to radio-group items.
  • Force close connection option has been implemented.

14. Extract Metadata

  • Performance has been improved when working with databases containing thousands of objects.

15. Dependencies trees

  • Fixed the occasional problems with objects sorting.

16. Code Editors

  • Code editor before save to file event block implemented. This block is fired directly before IBExpert saves the editor's content into a file and before the Save To File dialog appears. Within the block the user may change the target file name, file encoding (ANSI/UTF8, with or without BOM), cancel saving and supress the Save dialog. See block template for more information. Event blocks can be created/edited using the context menu in the Scripts/Blocks tree in the DB Explorer.

17. Backup/Restore Database

  • Additional information has been added regarding the time spent for operations listed in the backup/restore log (not displayed for time less than 1 second).

18. Other minor bug fixes and small improvements

back to top of page

IBExpert 2016.11.07

1. Object Editors, Operations/Index Using Tab

  • Support of subroutines (Firebird 3) has been implemented.

2. SP/Trigger/View Analyzer

  • Support of stored functions (Firebird 3) has been implemented.
  • Support of subroutines (Firebird 3) has been implemented.

3. Dependencies Viewer

  • Support of stored functions and packages (Firebird 3) has been implemented.

4. Table Data Comparer

  • Temporary tables (GTT) has been removed from the tables selection list.

5. Editor Options

  • Change font size with [Ctrl] + Mouse Wheel option added.

6. SQL Editor

  • Conversion of error messages from UTF8 has been implemented.

7. Package Editor

  • Confirmation before closing the editor (if package was changed) has been implemented.

8. IBEBlock, ibec_Exec function

  • If NoWait option is specified callback block and the OutFile option will be ignored. ibec_Exec with NoWait option just starts the process and returns immediately.
  • ShowWindow and HideWindow options have been implemented. By default the ibec_Exec function creates the process with a hidden window, if NoWait option is not specified. Use the ShowWindow option if you don't need to hide the process window.

9. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.10.09

1. Extract Metadata

  • The extraction of computed fields has been improved.

When a computed field is used in a view, the definition of that field will appear in the result script just before the view definition. This will only work if the Extract computed fields separately option is enabled.

2. Table Data Comparer

  • OCTETS character set strings (CHAR/VARCHAR) are now written into a LOB file if it is not possible to convert them into hexadecimal format.

3. Script Executive

  • Possibility to load CHAR/VARCHAR values from a LOB-file has been implemented.

4. SQL Editor

  • Editor font size is now stored for each query individually.

The font size can be increased/decreased using Ctrl + Mouse Wheel.

5. Object Editors, Dependencies

  • Fixed the problem with missing dependencies on packages (Firebird 3).

6. SP/Function Debugger

  • Support of the RETURN statement (stored functions, Firebird 3) has been implemented.

7. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.09.04

1. Database Comparer

  • Fixed the problem with the occasionally incorrect order of views while creating/deleting them.

2. Table Data Comparer

  • Fixed problem with missing values of Boolean fields in INSERT/UPDATE statements (Firebird 3).

3. Database Registration

  • Notification about the case sensitivity of user names (logins) for Firebird 3 added.

4. SQL Editor

  • Implemented the possibility to create stored scripts/blocks (which are stored in IBE$SCRIPTS table) from the SQL Editor content. There is a new button on the SQL Editor toolbar: New script/block.

5. Possibility to set IBExpert User Database connection properties from an INI-file

  • IBExpert looks for the IBExpert.ini file in the current directory. If there is no IBExpert.ini file in this directory - the user profile directory will be searched too.
  • If the IBExpert.ini file is found, IBExpert will read the UserDB section, if it exists. Four parameters are possible in this section:
    • UDBConnectString - the User Database connection string;
    • UDBUserName - user name
    • UDBPassword - password
    • UDBClientLib - path to client library file (fbclient.dll if omitted)

Only the UDBConnectString parameter is mandatory. If this parameter is found IBExpert will connect to the specified database instead of getting the User Database connection properties from the Windows Registry.

Example of IBExpert.ini file:


6. Blob Viewer: improved image viewer

  • Zooming in/out are possible using mouse wheel and +/- buttons on the keyboard.
  • Switching between actual size and "fit to window" mode is possible with mouse double-click or pressing the space bar.
  • Dragging image is possible when holding down the left mouse button.

7. IBEBlock

  • ibec_GetFiles: __gfSort option didn't work properly; it's fixed.

8. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.08.20

1. Database Designer

  • Fixed the problem with Boolean fields determined as UNKNOWN while reverse engineering Firebird 3 databases.
  • Zoom direction when using the mouse wheel has been reversed to correspond to other applications.
  • Drag mode when pressing and holding the middle mouse button has been implemented.

2. Database Monitoring, SQL Editor

  • Handling of lost connection errors has been improved.

3. Database Comparer

  • Fixed the problem with changing primary key properties (dependant foreign keys weren't deactivated).

4. DB Explorer

  • Jump to packages and Jump to functions (sub-items of Goto object) have been added to the context menu.

5. IBEBlock

  • ibec_RegisterFBCryptKey function implemented.


    function ibec_RegisterFBCryptKey(KeyName : string; KeyData : string; FBCryptDLLPath : string) : integer;

The ibec_RegisterFBCryptKey function registers a key to allow work with an encrypted Firebird database (Firebird 3).

It accepts following parameters:

  • KeyName - key name, should match one used in ALTER DATABASE ENCRYPT WITH "DbCrypt" KEY NAME operator;
  • KeyData - key bytes sequence;
  • FBCryptDLLPath - currently not used, reserved for future use;

There are three ways to specify key bytes sequence:

  1. ibec_RegisterFBCryptKey('Red', '$ec$a1$52$f6$4d$27$da$93...', '')
  2. ibec_RegisterFBCryptKey('Green', '0xab,0xd7,0x34,0x63,0xae,0x19,...', '');
  3. ibec_RegisterFBCryptKey('Raw', 'just a plain string', '');

It is possible to register more than one key (they should have different names).

The ibec_RegisterFBCryptKey function registers a key within the IBExpert/IBEScript process. Specified keys will be registered on the server if the key not set error is caused when connecting to a database.

  • ibec_RegisterFBCryptKey requires FBCrypt.dll on the client side.
  • DBCrypt.dll and KeyHolder.dll (plugins) should be installed and configured on the server side.

There are several ways to call ibec_RegisterDBCryptKey before connecting to a database:

  1. Include it into After IBExpert Starts script (Options / Environment Options).
  2. Include it into Before Connect Script of a database (Database Registration Info).
  3. Include it into After IBExpert Starts event block (DB Explorer / Blocks / Create/Edit event block in the context menu).

6. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.08.05

In dieser Version wurden die durch Windows Updates verursachten Registrierungsprobleme behoben.

back to top of page

IBExpert 2016.07.26

1. Table Data Comparer

  • The Too many contexts problem, which occurred when packing statements into Firebird blocks has been fixed.

2. Duplicate field name

  • Fixed the error which occurred when a record set contains two or more columns where the names differ in character case only.

3. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.07.17

1. Support of URL-style connection strings (Firebird 3) has been implemented in the following dialogs:

  • Database Registration Info
  • Create Database
  • Communication Diagnostics
  • Database Folder Properties

2. SQL Editor

  • Support of the RETURNING clause for UPDATE and DELETE statements. IBExpert shows the returned values in the Messages panel.

3. IBEBlock

  • ibec_CompareTables: the broken functionality of the AppendMode option has been restored.

4. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.06.19

1. Package Editor

  • Version history tab implemented.
  • Comparison tab implemented.
  • To-do tab implemented.

2. Stored (internal) Function Editor

  • Fixed the problem with incorrect object type (value of 1 was used, the same as for stored procedures) for stored functions to register a version in IBE$VERSION_HISTORY table. Since this version it is changed to 4.

To fix already existing records with an incorrect object type you can execute following UPDATE:

    set vh.ibe$vh_object_type = 4
    where (vh.ibe$vh_object_type = 1) and
          (exists(select f.rdb$function_name from rdb$functions f 
                  where f.rdb$function_name = vh.ibe$vh_object_name)) 

3. Database Registration Info

  • Disconnect if no activity option implemented (Additional page). Set it to a non-zero value to close the connection after a specified number of minutes if no activity against the connected database is detected.

4. Create View from Table

  • Support of IBEBlock implemented.
  • Support of RETURNING...INTO for before insert/update triggers implemented.

5. Data Grid

  • The popup text blob editor was replaced with a new one which works correctly with UTF8 data.

6. Code Editor

  • [Ctrl] + MouseWheel temporarily increases/decreases font size of text in an active code editor.

7. Export Data, Export as INSERT

  • The speed of data export has been increased.

8. Grant Manager

  • Fixed the problem with the missing USER/ROLE keyword when granting privileges on a database (CREATE/ALTER/DROP).

9. To-do List

  • Support of stored (internal) functions and packages (Firebird 3).

10. Database Comparer

  • Fixed some issues with comparing and altering computed fields.
  • Fixed the problem with the POSITION function that causes a syntax error when comparing Firebird 3 databases/scripts.

11. IBEBlock

  • Fixed the problem with ROW_COUNT variable (always contained 0).

12. Minor bug fixes and small improvements

back to top of page

IBExpert 2016.05.02

Bug-fix IBExpert.dll.

back to top of page

IBExpert 2016.04.15

This version 2016.04.15 introduces a new simplified and automated registration procedure for all IBExpert software products. You will however need to verify each active registration once. Please follow the procedure described in our online documentation:

Should you have any questions, please mail register@ibexpert.com.

back to top of page

IBExpert 2016.03.15

1. IBExpert Benchmark

  • IBExpert Benchmark has a new look! We're currently improving the IBExpert Benchmark feature; more improvements coming in the next IBExpert releases.

2. Package Editor

  • Package routines' explorer implemented.

3. SQL Editor

  • Fixed the problem with the empty plan for UPDATE OR INSERT and MERGE statements.

4. Table Data Comparer

  • Online synchronization feature implemented. This allows you to update the target database simultaneously with the comparison process.
Online synchronization is performed in a separate thread. If the result file name is specified, IBExpert also creates script file. If you only need online synchronization, leave the script file name editor empty.
  • Commit each block and Commit after specified number of records options added.

5. Test Data Generator

  • Added support of BOOLEAN and BLOB fields.
  • This now composes an IBEBlock which can be used to generate test data.

6. Script Executive

  • Advanced progress option implemented. If this option is enabled (default):
    • IBExpert roughly calculates and displays the remaining time using known script size and time already spent;
    • The progress bar is shown on the Script Executive toolbar;
    • Scrolls the script text editor accordingly to the part of the script currently being executed.

7. IBEScript

  • Advanced progress option added.

Syntax is "-A<seconds>" where <seconds> specifies the time interval in seconds to display progress messages. If <seconds> is not specified advanced progress information will be displayed every second.

The following information is available:

  • SC - statements count, number of executed statements;
  • POC - percentage of completion;
  • TS - time spent;
  • ETL - estimated time left.

For INPUT scripts the name of the input script file name will also be displayed.

Advanced progress information is displayed even if the -S option (silent mode) is specified.

8. Database Registration

  • Suppress database triggers checkbox added.

9. Import Data

  • Composed IBEBlock now contains fields mapping information.

10. Create Database dialog

  • You can now specify the SQL role name while creating the database.

11. IBEBlock

  • ibec_CompareTables now supports the following options:
    • CommitBlock or CommitBlocks - to perform COMMIT after each Firebird block;
    • CommitAfter=<number> - specifies the number of statements between COMMITs.
    • SyncOnline - perform online synchronization, see above.

12. Minor bug fixes and small improvements

back to top of page

IBExpert 2015.12.21

1. Database Comparer

  • Fixed all known bugs introduced in 2015.09.28.

2. Procedure, Function, Trigger Editors

  • Support of external procedures/functions/triggers (Firebird 3) implemented.

3. Create View from Table

  • Edit view after compile option added.

4. Create Procedure from Table

  • Grant necessary privileges on used tables option added.

5. Database Inside

  • Fixed problem with incorrect calculation of some ODS-dependent data which can cause errors while extracting data/metadata.

6. Extract Metadata

  • Support of external procedures/functions/triggers implemented (Firebird 3).

7. Script Executive

  • Support of external procedures/functions/triggers implemented (Firebird 3).
  • INSERTEX: support of BOOLEAN datatype implemented.

8. Minor bug fixes and small improvements

back to top of page

IBExpert 2015.09.28 & 2015.11.11

IBExpert Version 2015.11.11 is a small bugfix release, in which primarily the Database Comparer has been improved.

1. Database Comparer

  • Support of Firebird 3 databases implemented.
  • Visualization of differences implemented.

2. Trigger Editor

  • Added support for CREATE/ALTER/DROP MAPPING actions (Firebird 3).

3. Table Data Comparer

  • Now uses a single transaction when comparing data of several tables at the same time.

4. IBEBlock, ibec_CompareMetadata function

  • New OmitFunctions and OmitPackages options are intended to skip stored functions and packages accordingly while extracting and comparing metadata.
  • New Server version option - FB30 - implemented to support Firebird 3 databases. Usage: ServerVersion=FB30;...

5. Minor bug fixes and small improvements

back to top of page

IBExpert 2015.06.01

1. Database Inside

  • Support of Firebird 3 databases implemented.
  • Fixed the accidental invalid floating point operation error.

2. Database Comparer, Table Data Comparer

  • Fixed the problem that caused IBExpert to crash in some cases.

3. Support of online validation (Firebird 2.5.4) implemented

There are two ways to perform online validation:

  • In the Database Explorer select one or more tables and choose Validate selected table(s) online from the context menu.
  • In the Table Editor select Validate online from the Editor menu.

Online validation is available only in Firebird 2.5.4.

4. Data grids

  • Data tips for blob fields are shown in Unicode if it is necessary.

5. Code Editors

  • Support of statistical functions and linear regression functions (highlighting, parameter tips) implemented, Firebird 3.

6. PSQL parser

  • Support of REGR_xxx (linear regression) functions as window functions implemented (Firebird 3).

7. Blob Viewer

  • Added support of Firebird 3 format descriptors (As format page).

8. Minor bug fixes and small improvements

back to top of page
<< HK-Software Services Control Center | IBExpert | IBExpert new features archive >>