Subject ANN: IBExpert New Version 2008.08.12 ready for Download
Author HKlemt
IBExpert New Version 2008.08.12 ready for Download

Today we uploaded a new Version 2006.08.12
of IBExpert on

If you are registered customer and cannot
access the customer area, please check the
update end date from your registration form.

If you update right is already expired,
you can extend it for the next two years
with buying the Extension license(s) in
our shop. See details on our Web Site or just ask
register@... for details.

You receive this email because it was used
in the registration process of IBExpert.
If you want to cancel, just reply with
the word UNSUBSCRIBE in the Subject.

* New Tool for devloping Database Web Applications *
* IBExpertWebForms is now available. *
* See this documents for an introduction *
* *
* *
* *
* Registered IBExpert Users with a valid IBExpert license *
* can create a testdatabase on our webserver for 30 days *
* for free. See details on above documents. *

1. Database Explorer:
2. Extract Metadata:
3. Data Grid:
4. SQL Editor:
5. Added UTF8 charset to the list of connection charsets
6. Code Editors:
7. SP Debugger:
8. Trigger Editor:
9. Script Editor:
10. SP Editor:
11. Database Designer:
12. View Editor:
13. Table Editor:
14. Table Data Comparer:
15. Log Manager:
16. Grant Manager:
17. Exception Editor:
18. IBEBlock
19. Options / Environment Options:
20. New icons in the Database Explorer tree and toolbars.
21. Minor bugfixes and improvements...
22. Distribution of IBExpert Modules
23. NEW: IBExpert Educational Full Version for only 50 Euro (excl. VAT)
24. The new IBExpert Book 08 2006 is available now.

IBExpert 2006.08.12

1. Database Explorer:

* Added possibility to unregister more than one database at the
same time

* Fixed problem with restoring of width and height of the SQL
when it is floating

* Project View: ENTER key works as double-click now

* Implemented filtering of inactive database nodes.

2. Extract Metadata:

* Fixed problem with missing USING DESCENDING INDEX when extracting
foreign key DDL and index name is equal to constraint name

* Fixed problem with missing CR/LF after COMMENT ON statements

* Fixed problem with missing character set for blob fields

* Fixed problem with saving Data Tables list when "Extract All" option
is selected (when saving as IBEBlock)

3. Data Grid:

* Fixed problem with retrieving of blob fields data when redrawing grid

* Fixed some problems with getting of performance info

4. SQL Editor:

* When executing queries with parameters and some parameters have
of NULL IBExpert replaced them with IS NULL.
This behaviour was changed to normal (no replacement)

5. Added UTF8 charset to the list of connection charsets

6. Code Editors:

* Implementation of "Enable SPACE as select" in Code Insight options.
If this option is enabled SPACE key works as ENTER key, i.e. inserts
selected items from the Code Insight list into code.

* Implementation of drag-n-drop of database node from the Explorer
When you drag a database node from the DB Explorer tree into any
code editor IBExpert will offer you following choices:
CONNECT statement, CREATE DATABASE statement, IBEBlock with
ibec_CreateConnection function, ibec_CreateConnection function.

7. SP Debugger:

* Fixed some problems with query parameters when working with
the inplace SQL Editor

8. Trigger Editor:

* Trigger header now formatted accordingly to the Code Insight

* Fixed problem with missing fields list after NEW/OLD prefix in
the Code Insight list.

* Fixed problem with incorrect quoting of variables when autodeclare

9. Script Editor:

* Fixed problem with the font color of current statement on
the Statements page (was unreadable in some cases)

* Added confirmation dialog for execution of selected text only

10. SP Editor:

* Fixed problem with non-working hyperlinks on the Script page

* Procedure header now formatted accordingly to the Code Insight

* Fixed problem with autogranting privileges when procedure contains
a DELETE statement with nested SELECT from another procedure

* Fixed problem with incorrect quoting of variables when autodeclare

11. Database Designer:

* Fixed problem with incorrect renumbering of PK fields when one of
primary key fields is removed

* Added support for ESCAPE key to close popup domains list and popup
fields list

* Added possibility to display field domains within table rectangle.
Use Model Options / Tables / Field Domain option for this.

12. View Editor:

* Fixed problem with miss of trigger after compiling when the Triggers
page is active

13. Table Editor:

* Master/Detail View: Added possibility to edit master/detail data.
Use Commit and Rollback buttons on the toolbar to commit/rollback
your changes.

14. Table Data Comparer:

* Added possibility to include milliseconds into time/timestamp
Use corresponding checkbox on the Options page.

15. Log Manager:

* Trigger texts now formatted accordingly to the Code Insight settings

16. Grant Manager:

* Filter behaviour was changed to be equal to the one in the Database

17. Exception Editor:

* Fixed problem with altering of existing exception when exception
name is in mixed case and "Capitalize database object names"
is enabled.

18. IBEBlock

* ibec_ExtractMetadata: Fixed problem with missing generators when
extracting metadata from FB2 database

* ibec_CompareTables: Added possibility to include milliseconds into
time/timestamp values when comparing table data. Use
or 'IncludeMsecs' option for this.

* EXECUTE STATEMENT ... AS DATASET statement implemented

* Following functions added:

ibec_ini_SetStrings - sets contents of the INI file from a variable
ibec_ini_GetStrings - saves contents of the INI file to variable

* Implementation of ibec_CopyData function. This function intended for
quick copying data from one connection (ODBC or
Firebird/InterBase) to
another (Firebird/InterBase only).

function ibec_CopyData(SrcConnection : variant;
DestConnection : variant;
DestTableName : string;
SelectStatement : string;
Options : string;
CallbackBlock : variant) : integer;

Function ibec_CopyData returns number of records copied from
to DestConnection.


execute ibeblock
cbb = 'execute ibeblock (RecNo integer)
if (ibec_mod(RecNo, 100) = 0) then
ibec_Progress(RecNo || '' records copied...'');

OdbcCon = ibec_CreateConnection(__ctODBC, 'DBQ=C:\IBE
Demo\demo.mdb; DRIVER=Microsoft Access Driver (*.mdb)');

DB = ibec_CreateConnection(__ctInterBase,

user=SYSDBA; password=masterkey;
names=WIN1251; sqldialect=3');
use DB;
if (exists(select * from rdb$relations where
rdb$relation_name = 'IBEC_COPYDATA')) then
execute statement 'drop table IBEC_COPYDATA';

Country = 'US';

RecCount = ibec_CopyData(OdbcCon, DB, 'IBEC_COPYDATA',
COUNTRY < :Country',
'CommitAfter=100; EmptyTable;
CreateTable; DontQuoteIdents',

if (RecCount is not null) then
ibec_ShowMessage(RecCount || ' records copied successfully.');


19. Options / Environment Options:

* After Start Script feature implemented. This script will be executed
just after IBExpert starts. 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 individual folder. It works with the User Database only.

execute ibeblock
reg = ibec_reg_Open(__HKEY_CURRENT_USER, 0);
if (ibec_reg_OpenKey(reg, 'Software\HK
Software\IBExpert\CurrentData', FALSE)) then
UDBConnectString = ibec_reg_ReadString(reg,
UDBClientLib = ibec_reg_ReadString(reg, 'UDBClientLib');
UDBUserName = ibec_reg_ReadString(reg, 'UDBUserName');
UDBPassword = ibec_reg_ReadString(reg, 'UDBPassword');

if ((UDBConnectString is null) or (UDBConnectString = '')) then

UserDBConnectParams = 'DBName="' || UDBConnectString ||
'"; ClientLib=' || UDBClientLib ||
'; User=' || UDBUserName ||
'; Password=' || UDBPassword ||
'; Names=UNICODE_FSS; SqlDialect=1';

UserDB = ibec_CreateConnection(__ctInterBase,

-- Looking for missing database files (for local databases only)
MissingFiles = null;
i = 0;

PropIni = ibec_ini_Open('');
for select id, props from databases
where (rec_type = 0) and (props containing 'Protocol=3')
into :id, :props
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
MissingFiles[i] = ID;
i = i + 1;

if (i > 0) then
ParentID = null;
select id from databases
where (rec_type = 1) and (props containing
'FolderCaption=***MISSING DATABASE FILES***')
into ParentID;
if (ParentID is null) then
ParentID = gen_id(GEN_DATABASE_ID, 1);
insert into databases (ID, PARENT_ID, REC_TYPE,
values (:ParentID, 0, 1, 0, 'FolderCaption=***MISSING

for i = 0 to ibec_High(MissingFiles) do
id = MissingFiles[i];
update databases set parent_id = :ParentID where id = :id;


20. New icons in the Database Explorer tree and toolbars.

21. Minor bugfixes and improvements...

22. Distribution of IBExpert Modules

* To be allowed to distribute any of the
IBExpert Modules (ibexpert.exe, ibescript.exe,
ibescript.dll) together with your application,
you need:
-IBExpert Site License, if the distribution is
located only on computers in your own company
-IBExpert VAR License, if the distribution is
located on any computer outside your company

If you are already IBExpert customer, you can
upgrade to Site or VAR License and directly
buy the 24 month Extension Product.

See Purchase Area for Details

Some functions of the new IBExpert Modules do
not work on Non licensed Computers, so you can
only use them, where your IBExpert License is

Customers with Site License are allowed to
make them work on every computer in their
company just by copying the License file to
the path, where the module (such as
ibescript.exe) should run.

VAR License Customers may also integrate
these modules and the License file in their
Software installation.


A lot of customers asked us regarding a cheaper possibility to
use our ibeblock technology for their own software.

The IBExpert VAR License gives a distribution license for all
modules including the IBExpert IDE. Some smaller software companies
just asked for a way to integrate our technology for a cheaper

Because we always respect our customers wishes, we created 2 new

1. IBEScript EXE Distribution License
2. IBEScript DLL Distribution License

The IBEScript Distribution License gives you the unlimited right
to integrate IBEScript.exe or IBEScript.dll in your application.
you can use it for executing ibeblock scripts that connect to
different databases at the same time, integrate any odbc connection
as source or destination, simple data import and export, metadata
comparison and much more.

More examples can be found here

For using the distribution license, no keys are needed. You do
not even need ibexpert full version, but the integrated debugger
will help you to develop working scripts.

The distribution license contains only the file ibescript.exe or
ibescript.dll and the unlimited right to distribute it together
with your software.


1. What is IBEScript EXE?

IBEScript.exe can be used to execute any valid IBExpert script in
batchfiles. For example a scheduled import or export job can be
started without the need of any user input.

IBEScript.exe can also be used to encrypt script files, so that
they are unreadable for the user, but executable together with

2. What is IBEScript DLL?

When you want to integrate IBExperts scripts in your own
you can use IBEScript.dll. A simple example for Delphi can be found
in IBExperts IBEScriptDll subdirectory. It can also be used from all
other programming languages that can handle DLL calls.

3. What is IBEBLOCK?

It is a set of DDL, DML and other statements that are executed on
the server and on the client side, and which include some specific
constructions applicable only in IBExpert or IBEScript (excluding
the free versions of these products), independent of the database
server version.

With EXECUTE IBEBLOCK you will be able to:

* Work with different connections within the single IBEBLOCK at
the same time.
* Move (copy) data from one database to another.
* Join tables from different databases.
* Compare data from different databases and synchronize them.
* Populate a table with test data using random values or values
from other tables or even from other databases or ODBC
* ... and much more.

The syntax of IBEBLOCK is similar to that of stored procedures but
there are many important extensions. For example:

* You can use EXECUTE STATEMENT with any server, including
InterBase 5.x, 6.x, 7.x.
* You can use one-dimensional arrays (lists) of untyped
and access them by index.
* It isn't necessary to declare variables before using them.
* You can use data sets (temporary memory tables) to store
* ... and much more.

4. Simple ibeblock example to copy data between two databases
incl blobs

execute ibeblock
create connection src dbname 'localhost:c:\src.fdb'
password 'repl' user 'REPL' clientlib 'fbclient.dll';

create connection dest dbname 'localhost:c:\dest.fdb'
password 'repl' user 'REPL' clientlib 'fbclient.dll';

use src;
for select id, usr, ts, sql, idx, dat
from ibe$log
into :id, :usr, :ts, :sql, :idx, :dat
use dest;
insert into ibe$log(id, usr, ts, sql, idx, dat)
values (:id, :usr, :ts, :sql, :idx, :dat);

use dest;
close connection src;
close connection dest;

You can execute single IBEBLOCKs via the SQL Editor. You can
debug them
in the SQL Editor too. They are debugged in the same way as stored
procedures and triggers. Also you can include IBEBLOCKs into your
scripts and execute these scripts as usual - using the Script
Executive or IBEScript.exe.

To buy our distribution license products visit our shop at
and open the product group "distribution license"

23. NEW: IBExpert Educational Full Version for only 50 Euro (excl. VAT)

For students and teachers at schools or universities, we offer the
free IBExpert Educational Version with the 50MB database limit
since a long time. A lot of people already told us that they are
very happy with using IBExpert and Firebird in their studies.

If they want to use it for larger databases also, they can now
get the IBExpert 1 License for Educational Purposes Full License
for a special price.

This product is not only available for students and teachers at
commercial schools or universities.

We require the following information for your product registration

* User name
* User e-mail address
* Computer name of the computer, where IBExpert is to be installed.
* Copy of the valid school students identity card
Copy of the valid university students identity card
Official order from the School/University

We need the copies as scanned email attachments to
register@... or fax to +4970042397378


To buy IBExpert Educational Full Version visit our shop at
and open the product group "software for educational purposes"

The price is 50 Euro. In Germany and Europe we have to charge you
additional 8 Euro VAT. When you want to pay by bank transfer, be
sure that all transfer fees are paid from the customer, otherwise
we can not deliver the product before we receive all the money.
We recommend to use paypal.

24. The new IBExpert Book 08 2006 is available now.

Holger Klemt, Debra Miles
Published: Aug 2006
Published by: HK-Software
2 Ring Binder, 1590 pages
English language

Have a look at the table of content and some sample chapters here.

The quality of the preview pdf file is limited due to space reasons.
The full PDF Version, which is also included in the book package,
comes with full PDF quality, full searchable index etc.

About the IBExpert Book

If you're looking for a way to make life easier, this publication
will certainly help you on your way!

Whether developing SQL databases as a hobby or professionally,
you need an efficient and powerful development and administration
tool. IBExpert enables you in just a short space of time to
become acquainted with, and achieve a command of the open source
database, Firebird, as well as its commercial relative, Borland
InterBase®. Development of database objects, database models,
stored procedure and trigger programming, performance tuning,
data analysis - all this and much more can be executed simply
and quickly using IBExpert.

This publication is written for both database developers and
database administrators; both will profit from this reference
book in their daily work with the Firebird/InterBase® server.
All relevant modules are presented in detail and the sundry
options and background information provide both beginners
and experts alike with a wealth of information that can
only otherwise be laboriously compiled from diverse
information sources.

IBExpert is the ideal complement for discerning developers
and administrators; its resources enabling the user to acquire
the technical proficiency required for professional applications.

IBExpert is available as a commercial Full Version including
all modules (also available as a 45-day Trial Version), a
free of charge, functionally limited Personal Edition or
a gratis Educational Version.

Free CD, including Firebird and IBExpert software, PDF Book,
video tutorials and additional information, enclosed with all
direct orders (while stocks last).

Purchase Information on

The IBExpert Team

The most Expert for InterBase and Firebird ---
HK Software - Gerhard Stalling Strasse 47a - 26135 Oldenburg - Germany
Phone/Fax +49 700 IBEXPERT (42397378)
Training and Support for Delphi, InterBase, Firebird, AS/400