- Additional Help
- Additional Tools
- Disabled Names
- IBExpert Direct
- IBExpert User Database
- IBExpert After Start Script
Environment Options can be found in the IBExpert Options menu. It enables the user to organize his IBExpert working environment as he wishes. It is possible, for example, to set certain defaults for editors and specific menu items, alter colors or the system font, etc.
The Preferences window allows the user to specify certain general preferences or defaults.
The user interface is the connection between the machine and the user, i.e. the way the software is presented to the user on-screen. The user interface enables the user to use the program and manipulate data.
When altering the user interface from SDI to MDI and vice versa, IBExpert needs to be restarted for the change to take effect.
The default language is English. The pull-down list offers the following alternative languages:
Should you not be able to see the full list of languages in the drop-down list, either delete the
ibexpert.lng file or rename the
english.lng file, found in the IBExpert Languages directory, to
ibexpert.lng, and place this in the main IBExpert directory.
If the same database version is used for all projects, it is advisable to set a default version here. This saves having to enter the database server version every time a database is registered. The pull-down list offers the following database versions:
- Unknown (default)
- Firebird 1.0
- Firebird 1.5
- Firebird 2.0
- Firebird 2.1
- Firebird 2.5
- Firebird 3.0
- InterBase 5.x
- InterBase 6.1
- InterBase 6.5
- InterBase 7.0
- InterBase 7.1
- InterBase 7.5
- InterBase 2007
- InterBase 2009
- Yaffil 1.0
The default character set is the character set defined when creating the database, and applicable for all areas of the database unless overridden by the domain or field definition. It controls not only the available characters that can be stored and displayed, but also the collation order. If not specified, the parameter defaults to NONE, i.e. values are stored exactly as typed.
Please refer to Default character set for further information.
The following character sets are currently available:
GDS32.DLL is dependent upon the database server. Firebird has, in addition to this, its own library,
GDS32.DLL is however also included for compatibility reasons. When working with Firebird, or different Firebird/InterBase® server versions, the DLL can be selected here, as wished; simply click the Open File icon to the right of this field, to select the library required.
The Script Executive always uses this default client library unless it is overriden using the
SET CLIENTLIB command directly in the Script Executive editor.
Here you can specify your own shortcut for opening the Localizing Form, if you do not wish to use the default [Ctrl + Shift + Alt + L]. The Localizing Form displays all functions and the respective key combinations, which can also be customized. Please refer to Localizing Form for further information.
The following features can be checked or unchecked as wished:
(7) Don't Show Splash Screen: disables the IBExpert Splash Screen displayed whilst IBExpert is being loaded.
(8) Disable multiple instances of IBExpert: when checked this option ensures that IBExpert is only opened once.
(9) Restore desktop after connect: if this option is checked, IBExpert will restore all those forms left open as the last connection was ended, when it reconnects to the database.
(10) Maximize first child window: the first Editor/window opened is automatically expanded to fill the maximum screen area. This option is only available in the MDI version.
(11) Autohide DB Explorer when inactive: this option hides the DB Explorer automatically, if it is not focused. In other words, when the mouse is held over the left area, the DB Explorer appears; when the mouse is removed to begin work in an editor or child window, the DB Explorer is blended out, offering a larger work area.
Some users find it annoying to be constantly asked for confirmation, whether or not they really want to carry out an operation. This window allows the user to specify, which confirmations he considers wise.
The following options are available:
- Confirm object (or documentation) saving: if this option is checked, IBExpert will request confirmation before saving object modifications or descriptions.
- Confirm exit from editor (if object is changed): if this option is checked, IBExpert will request confirmation, if alterations have been made, before exiting from an object editor.
- Confirm object dropping (recommended): if this option is checked, IBExpert will request confirmation before dropping any database object.
- Confirm exit: if this option is checked, IBExpert will request confirmation before closing IBExpert.
- Confirm successful compilation: (recommended) if this option is checked, IBExpert displays a dialog, showing whether compilation was successful or not.
- Confirm closing of all windows
- Confirm commit/rollback transaction: (recommended) this option determines whether a message box appears, asking for confirmation when a user commits or rolls back active transactions in the SQL Editor, Table Editor, View Editor or Stored Procedure Editor.
- When there is an active transaction in form to be closed: this option allows you to control which default action should be taken when closing an active transaction. By default IBExpert asks for your choice for each active transaction when you close a form. Now you can select from the options Let me choose an action, Commit or Rollback.
The Tools page allows the user to specify the following for all tools if wished:
- Autogrant privileges when compiling procedures, triggers and views: this saves the repetitive task of autogranting privileges on the Grants page of the object editors each time a new procedure, trigger or view is created, and prevents the problems which inevitably arise should the assignment of rights be forgotten. (IBExpert version 2014.03.16 introduced support of Firebird 3.0 packages and functions.)
- Revoke existing privileges: if this option is enabled, an object's (stored procedure, trigger, view) existing privileges will be deleted before granting it new privileges.
- Inplace Objects Editors: this item applies to the so-called editors within editors.
For example, the Table Editor is active and a trigger is selected on the Trigger page: if this option is not checked, an SQL Editor window appears automatically in the lower part of the Table Editor, displaying the trigger code, but not allowing any changes to be made. When this option is however checked, a simple click on a trigger automatically opens the Trigger Editor in this lower area, enabling work to be done on it, without having to leave the Table Editor and opening the Trigger Editor.
Here it is possible to specify whether database object descriptions should be displayed or not (this only makes sense if object descriptions are entered by the user), and whether double-click expanding (for the DB Explorer tree) is desired. Further options include a check-box option to allow filtering of inactive database nodes and a drop-down list for the specification of the tab position of the Database Explorer pages.
Furthermore, colors may be specified for the following:
- system objects
- database folders
- database folder containing active DB
- inactive triggers
The following options may be user-defined for the SQL Editor:
- Fetch All: when this option is checked, all records corresponding to the query will be extracted from the table and displayed on the Results page, as opposed to only those displayed that are visible in the Results area, when this option is left unchecked.
- Go to Results page after executing: this option is only worth checking of course if you have specified Separate Results page (see below).
- Clear editor after successful execution of DDL statement: this clears the results page after the query has been committed.
- Separate Results page: turn this option off to place SQL query results directly below the code editor, or activate it to display query results on a separate page (found directly to the right of the Edit page).
- Request new query name immediately before creating: This option was implemented in IBExpert version 2014.09.15. If this option in enabled IBExpert will request a new query name just before creating it.
The following set of options control the behavior of the SQL Editor's Query Manager, when multiple instances of the SQL Editor are started:
- Synchronize text of active query in opened SQL Editors immediately when the second, third etc. SQL Editor starts
- Use next existing query set
- Create a new query set when there are no more inactive query sets
- Create a new empty query in query set used by this SQL Editor
The SQL Script Options page offers the following user specifications:
- Abort Script on Error: the script execution is halted the moment an error is detected.
- Rollback on Abort: the script is automatically rolled back the moment an error is detected in the script. This option is only possible, if the first item, Abort Script on Error, is already selected.
- Fire event blocks: please refer to the Script Executive's Options page for further information.
Here it is possible for the user to specify the system (i.e. IBExpert) font name and size. The
Sample Text 12345 displays the specified font as it will appear in IBExpert.
Here certain additional data, metadata and script default transaction properties may be defined for the server connection.
These are all Firebird/InterBase® API terms, and may be checked as wished.
Data Transaction Properties:
- Read Committed
- Read-Only Table Stability
- Read-Write Table Stability
Metadata Transaction Properties:
- Read Committed
- Read-Only Table Stability
- Read-Write Table Stability
Script Transaction Properties:
- Read Committed
- Read-Only Table Stability
- Read-Write Table Stability
Here a range of options are available, applicable for all data grids:
Check boxes for the following options:
- Stripy Grids: makes reading wide lines of data rows easier.
- Scrollbars tracking
- Show text blobs as memo: The memo option enables the blob to be easily read by simply focusing the cursor over the blob field.
- Immediate editor: Enables immediate editing in the data grid by simply placing the cursor on a field, as opposed to having to first double-click on the field, in order to edit it.
- Allow records grouping: When this option is checked, an additional gray bar appears above the column headers over the grid. A column header simply needs to be dragged 'n' dropped into this area, to group by the selected column. A reorganized data view appears, where the group contents can be revealed or hidden, by clicking on the '+' or '-' buttons. Please note that this is not the same as the data grid right-click menu item Group Fields/Ungroup Fields.
- Enable tooltips: when checked, this option displays the full field contents when the cursor is held over a particular field, if the column width is not sufficient to display all information. This is useful, if tables with many columns and long field contents need to be scanned.
- Enable navigation using [Tab] and [Shift + Tab] keys
- Allow multiselect: allows multiple data sets to be selected for editing (e.g. copying). If this is not checked, it is only possible to select one data set at a time. The change of mode can be recognized by the form/shade of the arrow on the left when pointing at a selected data set.
- Full refresh (close and open dataset) when Refresh button clicked: by default, the Refresh button in all IBExpert Data grids refreshes only the current record, not the entire record set. if you wish to use the data grids to enter multiple data sets, you can alter this default value by checking this option.
Furthermore it is possible to specify the exact representation of a
NOT NULL fields. The default value is displayed as <null> (in red).
NOT NULL fields can be displayed as bold text or be highlighted with color.
Here the user can specify the colors for different elements in the grids:
- Grid Background
- Current Row
- Odd Rows
Further options include a check box option for Use field scale, which allows a field definition to override these standard specifications, and an option to specify the String fields' width for characters.
The following lists the various date and time formatting options available.
The following format allows you to alter the way the date and time is displayed. Please note that this does not alter the way this information is stored, only the way it is displayed.
Date time format strings specify the formatting of date-time values (such as
TDateTime) when they are converted to strings. Date time format strings are passed to formatting methods and procedures (such as
FormatDateTime), and are also used to set certain global variables (such as
They are composed from specifiers that represent values to be inserted into the formatted string. Some specifiers (such as
d), simply format numbers or strings. Other specifiers (such as
/) refer to local-specific strings from global variables.
In the following table specifiers are given in lower case. Case is ignored in formats, except for the
|c||Displays the date using the format given by the |
|d||Displays the day as a number without a leading zero (|
|dd||Displays the day as a number with a leading zero (|
|ddd||Displays the day as an abbreviation (|
|dddd||Displays the day as a full name (|
|ddddd||Displays the date using the format given by the |
|dddddd||Displays the date using the format given by the |
|e||Displays the year in the current period/era as a number without a leading zero (Japanese, Korean and Taiwanese locales only).|
|ee||Displays the year in the current period/era as a number with a leading zero (Japanese, Korean and Taiwanese locales only).|
|g||Displays the period/era as an abbreviation (Japanese and Taiwanese locales only).|
|gg||Displays the period/era as a full name. (Japanese and Taiwanese locales only).|
|m||Displays the month as a number without a leading zero (|
|mm||Displays the month as a number with a leading zero (|
|mmm||Displays the month as an abbreviation (|
|mmmm||Displays the month as a full name (|
|yy||Displays the year as a two-digit number (|
|yyyy||Displays the year as a four-digit number (|
|h||Displays the hour without a leading zero (|
|hh||Displays the hour with a leading zero (|
|n||Displays the minute without a leading zero (|
|nn||Displays the minute with a leading zero (|
|s||Displays the second without a leading zero (|
|ss||Displays the second with a leading zero (|
|z||Displays the millisecond without a leading zero (|
|zzz||Displays the millisecond with a leading zero (|
|t||Displays the time using the format given by the |
|tt||Displays the time using the format given by the |
|am/pm||Uses the 12-hour clock for the preceding |
|a/p||Uses the 12-hour clock for the preceding |
|ampm||Uses the 12-hour clock for the preceding |
|/||Displays the date separator character given by the |
|:||Displays the time separator character given by the |
|'xx'/"xx"||Characters enclosed in single or double quotes are displayed as-is, and do not affect formatting.|
To format the date as month, day, year and the time as am or pm, simply enter the following on the Display Formats page:
Simply alter DateTime Fields to: mm/dd/yyyy hh:mm am/pm: and Time Fields to hh:mm:ss am/pm
The Additional Help window allows the user to add certain additional help files. This is particularly useful for incorporating the help files of third party components, installed in the IBExpert PlugIns menu or the IBExpert Tools menu item, External Tools.
An additional menu item is automatically inserted in the IBExpert Help menu, for each of these help files.
The Additional Tools dialog allows the user to add certain additional third party tools. Once additional tools have been uploaded here, an extra menu item, External Tools, appears in the IBExpert Tools menu, allowing the user to quickly open his third party tools directly from IBExpert.
This page can be used to define a list of disabled object names.
Names that should be avoided because they are Firebird keywords, such as
START (Firebird 2.1) do not need to be added to this list, as they are automatically generated by IBExpert with the necessary quotation marks (
"). If you wish to avoid metadata names in quotation marks, these words need to be typed with the quotation marks in the list of disabled names (see illustration above).
This dialog is important, to specify which file types IBExpert should recognize and associate with the Firebird/InterBase® database. The check list includes the following suffixes:
The IBExpert Direct dialog allows the user to specify a number of options concerning this IBExpert menu item found in the Help menu. The IBExpert configuration window can be started either from the IBExpert Options menu item, Environment Options or alternatively directly from the IBExpert Help menu item, IBExpert Direct, using the respective icon:
The options available include the following:
(1) Automatically poll network: this is recommended, as IBExpert Direct is an important information source, informing all users of news concerning IBExpert, such as new versions, documentation, downloads, plugins, forums, as well as contact addresses and a direct link to the IBExpert home page, http://ibexpert.net/ibe/.
(2) The polling interval in days can be user-specified. Check boxes allow the user to specify whether IBExpert Direct should (3) automatically shown on refresh, or whether (4) the network should be polled for new items, each time IBExpert is started.
(5) The Last update field is purely a display field, showing the last time the network was polled for new IBExpert Direct news items.
(6) It is also possible to specify a proxy server if necessary, with fields for specification of the proxy address, port, user name and password.
(7) The last field displays the IBExpert Direct link address for IBExpert to internally download the file.
The complete IBExpert configuration and work is stored in the IBExpert User Database. The user database should always be used for your main storage for security reasons. It is also possible to store SQL scripts in the IBExpert User Database. These scripts can then be viewed and opened using the Scripts/Blocks page in the DB Explorer.
If you have not specified and registered your IBExpert User database, you will receive the following error message, each time you start IBExpert:
The simplest and quickest way to set up your User database is using the supplied Firebird embedded server.
Use the Environment Options menu item, User Database:
The following information is required in order to create a new user database. After checking the Allow User Database checkbox the following fields need to be completed:
- User Database Connection String: Use this field to specify a local file path, e.g.
c:\db\ibe.fdb. Important: do not quote a server name (e.g.
localhost:) if you are intending to use the recommended Embedded Server.
- User Name (default:
- Password (
- Client Library File here you should select the
fbembed.dlllocated in the IBExpert
- Check box: Store Project View Data in User Database
The user database can then be created and initialized using the Create and Init User Database button, and then registered using the IBExpert Database menu item, Register Database. From now on you should no longer see the error message when starting IBExpert.
If you wish to store the IBExpert User Database on a network drive, we recommend the following procedure: move the client library file,
fbembed.dll, from the IBExpert subdirectory,
\IBEUDB to a location of your own choice (but without the
localhost: prefix), and rename the database with a valid name of your choice. The User Database then uses Firebird's Embedded Server.
Please also refer to the IBEBlock article: Performing a daily backup of the IBExpert User Database.
Please note that since version 2011.12.01 IBExpert uses the Firebird database and Firebird Embedded 2.5 to store IBExpert data (registered databases, query histories etc.) by default. In previous versions by default IBExpert stored this data in the
IBExpert.stg file and the user was able to change this manually in the User Database. Working with
IBExpert.stg is still possible (for example, if you disable the User Database manually) but you will get a warning every time you start IBExpert (refer to image at top of page), and we will not support this method in the future.
Pre-2011.12.01: If you wish to copy the specifications for a database already registered in one IBExpert version over to another IBExpert version, simply copy the file:
\Documents and Settings\<user>\Application Data\HK-Software\IBExpert\IBExpert.stg. The preferable solution is however to change to the IBExpert User Database.
Using the Sounds preference, it is possible to specify a
.WAV file to announce the end of a time-consuming query.
A script specified here will be executed every time IBExpert is started.
The following example illustrates how to use the After Start Script to find all database registration records with missing database files (if local access is used), and place them into an individual folder. This only works with the User Database.
execute ibeblock as begin reg = ibec_reg_Open(__HKEY_CURRENT_USER, 0); try if (ibec_reg_OpenKey(reg, 'Software\HK Software\IBExpert\CurrentData', FALSE)) then begin UDBConnectString = ibec_reg_ReadString(reg, 'UDBConnectString'); UDBClientLib = ibec_reg_ReadString(reg, 'UDBClientLib'); UDBUserName = ibec_reg_ReadString(reg, 'UDBUserName'); UDBPassword = ibec_reg_ReadString(reg, 'UDBPassword'); end finally ibec_reg_Close(reg); end; if ((UDBConnectString is null) or (UDBConnectString = '')) then exit; UserDBConnectParams = 'DBName="' || UDBConnectString || '"; ClientLib=' || UDBClientLib || '; User=' || UDBUserName || '; Password=' || UDBPassword || '; Names=UNICODE_FSS; SqlDialect=1'; UserDB = ibec_CreateConnection(__ctInterBase, UserDBConnectParams); try ibec_UseConnection(UserDB); -- Looking for missing database files (for local databases only) MissingFiles = null; i = 0; PropIni = ibec_ini_Open(''); try for select id, props from databases where (rec_type = 0) and (props containing 'Protocol=3') into :id, :props do begin Props = '[DB]' || ibec_CRLF() || Props; ibec_ini_SetStrings(PropIni, Props); Props = ibec_ini_GetStrings(PropIni); DBFile = ibec_ini_ReadString(PropIni, 'DB', 'DBNames', ''); if ((DBFile <> '') and (not ibec_FileExists(DBFile))) then begin MissingFiles[i] = ID; i = i + 1; end; end; finally ibec_ini_Close(PropIni); end; if (i > 0) then begin ParentID = null; select id from databases where (rec_type = 1) and (props containing 'FolderCaption=***MISSING DATABASE FILES***') into ParentID; if (ParentID is null) then begin ParentID = gen_id(GEN_DATABASE_ID, 1); insert into databases (ID, PARENT_ID, REC_TYPE, DB_ORDER, PROPS) values (:ParentID, 0, 1, 0, 'FolderCaption=***MISSING DATABASE FILES***'); commit; end for i = 0 to ibec_High(MissingFiles) do begin id = MissingFiles[i]; update databases set parent_id = :ParentID where id = :id; commit; end end; finally ibec_CloseConnection(UserDB); end; end
The following example shows how you can limit access for certain named users to certain IBExpert features, using a combination of an IBEBlock script and an an After start script:
execute ibeblock as begin pwd=''; if (ibec_InputQuery('Start','Please enter password',pwd)) then if (pwd='123') then ibec_enablefeature(0); else ibec_disablefeature(0); end
Please also refer to the IBEBlock example, Disable and enable IBExpert features.