Whats New

IBExpert 2024.12.01
(and bugfix 2024.12.04)

1. Event blocks

  • "Before start trace session" event block implemented.
    See \Blocks\Templates\EventBlocks\TAS.BeforeStartTraceSession.ibeblock for an example.
    Also see description of new "Quick start trace session" feature below.

2. Code editors

  • Support for multilevels in User actions submenu.
    See \Blocks\Templates\EventBlocks\CodeEditorUserActions.ibeblock for a working example.

3. Database Comparer

  • Fixed the problem with missing stored functions and packages while comparing Firebird 5 databases.

4. Quick start trace session feature implemented

  • This feature is intended to start a trace session for an active connection with a single click.
  • Default trace config is provided by IBExpert and can be modified in the "Before start trace session" event block which is fired when quick start or regular start (Services | Trace and Audit | Start new trace session) is performed.

    There are several other properties of trace session and trace form which can be customized in the "Before start trace session" event block.

    See \Blocks\Templates\EventBlocks\TAS.BeforeStartTraceSession.ibeblock for complete example.
  • To quick start a trace session, use the corresponding button on the main form tool button. Alternatively it can be done using the [Ctrl] + [Shift] + [T] shortcut.

5. IBEBlock

  • ibec_psql_PreprocessPSQL function implemented.

    It inserts some placeholders in the form of single line comments into a provided PSQL source (procedures, functions, triggers and package routines) which can be later replaced with additional debug statements (INSERT into a log table etc.). For a complete example see \Blocks\DefaultBlocks\PSQL.PrepareForDebug.ibeblock.

    There is also a working implementation of calling this block from \Blocks\Templates\EventBlocks\ CodeEditorUserActions.ibeblock which performs the preparation of the PSQL source for debugging and removes debug statements and comments from the PSQL source when they are no longer needed.
  • @SysUtils.GetFilePath function implemented.

    The function sequentially checks the specified folders for the presence of the file. If the folder contains the specified file, the function returns the full path to it and exits. Otherwise, it returns NULL.

Example:

    ...
    sBlockFileName = 'PSQL.PrepareForDebug.ibeblock';
    sBlockFilePath = @SysUtils.GetFilePath(sBlockFileName,
       ibec_GetEnvironmentVariable('IBE_USERBLOCKSDIR'),
     ibec_Coalesce(ibec_GetEnvironmentVariable('IBE_APPDIR'), '') + '\Blocks\DefaultBlocks');

  if (sBlockFilePath is null) then
  begin
    ibec_ShowMessage('Looks like ''' + sBlockFileName + '''is missing...');
    Exit;
    end; 

6. Minor bugfixes and small improvements


IBExpert 2024.04.07

1. Database Registration

"Show server version mismatch warning" option added (Additional tab). 

If this option is ON (default) IBExpert will compare the specified and the actual version of the database and warn in case of a mismatch with a choice of possible actions.

2. PSQL Debugger

Support for time zones implemented (Firebird 4, 5). 

3. Data Grids

The possibility to dump blobs to file without preloading them into the IBExpert GUI has been implemented; it is available from the grid context menu.

Fixed the issue with incorrect representation of RDB$DB_KEY for tables with >2G records. 

4. Code Completion

Fixed the incorrect behaviour when selecting/unselecting items in the list using the mouse. 

5. Database Inside

Support for Firebird 5 databases. 

6. SQL Editor, Statements History List

Added counters for page operations. 

7. Database Comparer

Support for parenthesized SELECTs (Firebird 5) implemented. 

8. Other minor bugfixes and small improvements


IBExpert 2024.01.22

Mainly bug fixes.


IBExpert 2023.11.22

Mainly bug fixes.


IBExpert 2023.10.27

1. Code Editor, Code Completion

  • Improved performance especially on databases with lot of objects.
  • Suggesting possible joins based on existing relationships by foreign keys - call the Code Completion after JOIN keyword.
  • There was a bug on some configurations in the previous version which caused IBExpert to freeze when the Code Completion is fires. Fixed in this version.

2. Database Inside

  • Support for Firebird 4 databases.

3. Partial support for Firebird 5 implemented

  • Support for all known syntax changes/additions in the PSQL parser:
     SKIP LOCKED, WHEN NOT MATCHED BY SOURCE, parenthesized SELECTs etc.

     However, there is NO support yet for parenthesized SELECTs in the Database Comparer.
     Also the PSQL debugger doesn't allow to debug roitines with subroutines which reference variables in a main routine.

  • Support for new built-in functions in the Code Parameters hint.
  • Support for partial indices in the index editors and metadata extract.
  • Support for parallel workers in following IBEBlock functions:
    ibec_BackupDatabase, ibec_RestoreDatabase, @Services.RepairDatabase.

      There is a new option available - ParallelWorkers (or just Parallel) - which allows to specify number of parallel workers (e.g. ParallelWorkers=4)

4. Other minor bugfixes and small improvements


IBExpert 2023.09.13

Mainly bug fixes.


IBExpert 2023.07.09

1. DB Explorer

  •   Activating/deactivating database objects from the Project View tree.

2. Search in Metadata

  •   Possibility to search in scripts/blocks (IBE$SCRIPTS table) has been implemented.

3. Code Editors

  •  Hyperlinks behaviour for package routines implemented.
  • "Before load from file" event block implemented. This block allows you to perform some actions before the appearance of the "Open file" dialog; for example, change a source directory. See block template for more details.
  • "Init/perform user actions" event block implemented. This block allows you to define user actions with code editor content which will be executed via a shortcut and/or from the code editor context menu (the very first item in the menu, if the block exists and is active). See block template for more details.

4. Dependencies trees

  •   Solved some issues with the incorrect display of package dependencies.

5. Copy Database Object

  • Support of SQL role in copy blocks added.

6. IBEBlock

  • @Services.RepairDatabase and @Services.SetDBProperties functions implemented. 

    Example:

    execute ibeblock
    as
   begin
     -- Both functions return nothing (NULL) if there were no errors,
     -- otherwise they will return an error message 

     sDBName = 'dbserver/3053:D:\databases\db.fdb';
      sConnectParams = 'ClientLib="D:\ClientLibs\fbclient_30.dll"; User=SYSDBA; Password=masterkey;';

    -- Supported repair params: Limbo, CheckDB, IgnoreChecksum,
      -- KillShadows, Mend, Sweep, Validate, ValidateFull

      Res = @Services.RepairDatabase(:sDBName, :sConnectParams || 'Mend');

     if (Res is not null) then
       ibec_ShowMessage(Res); 

      -- All supported params are listed in the example

      Res = @Services.SetDBProperties(:sDBName, :sConnectParams || 'PageBuffers=2048; SQLDialect=3;
           SweepInterval=20000; ForcedWrites=TRUE; ReadOnly=FALSE');

     if (Res is not null) then
        ibec_ShowMessage(Res);

    end;

  • ibec_ExtractMetadata function:
    ExtractPrimaryKeys and ExtractUniques options added to prevent extraction of primary keys and unique constraints. Together with the existing ExtractReferences and ExtractChecks these options allow you to suppress the extraction of all constraints.

    By default all of these options are ON (TRUE). To disable the extraction of primary keys, for example, set the corresponding option to FALSE: ExtractPrimaryKeys=FALSE.

  • Code Editor namespace with set of functions implemented. See example of usage in the "Init/perform user actions" event block template.

7. Minor bugfixes and small improvements


IBExpert 2023.04.14

Minor bugfixes and small improvements.


IBExpert 2023.03.06

 1. Data Grid

  • Possibility to edit UUID/OCTETS values in the filter criteria tree has been implemented.
  • The mouse wheel can now be used to perform Page Up and Page Down actions.
  • By default the Ctrl key should be held to perform PageUp/PageDown.
  • To change the default modifier put the following piece of code into the After IBExpert starts event block:
    ibec_SetGlobalVar('IBE$DATA_GRID_PAGE_SCROLL_MODIFIER', <value>);

        where <value> is one of following: empty string, null, 'CTRL', 'ALT', 'SHIFT'.

        An empty string or null as a new modifier value makes PageDown/PageUp a default                behaviour of the mouse wheel in the Data Grid.

2. Code Editor

  • Support of keyboard templates in the Code Completion list.
    There is a new option Show keyboard templates in Code Completion list in the Options | Editor Options | Code Insight.

3. Automatic restore of a dead connection

  • By default if the database connection is lost IBExpert shows a dialog window and offers to restore a dead connection. To attempt to restore the connection automatically without user confirmation put following line of code into the After IBExpert starts event block:
    ibec_SetGlobalVar('IBE$RESTORE_DEAD_CONNECTION', TRUE);

4. Database Object Editors

  • Support of object names longer than 31 chars (Firebird 4) where they were not yet supported.

5. Export Data

  • Export to clipboard in JSON format implemented.

6. Code Formatter

  • Support of space after opening and before closing bracket options.

7. Minor bugfixes and small improvements