Subject ANN: IBExpert new Version IBExpert 2006.01.29 ready for Download
Author HKlemt
IBExpert new Version IBExpert 2006.01.29 ready for Download

Today we uploaded a new Version 2006.01.29
of IBExpert on www.ibexpert.com

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 same license(s) again in
our shop. See details on our Web Site
www.ibexpert.com

IBExpert 2006.01.29
------------------------------------------


1. Database Comparer:

* Fixed some problems connected with ROWS clause (InterBase 7.?)

* Fixed problem with RDB$FIELD_PRECISION while extracting UDFs
from IB 5.? databases

* Fixed problem with extra dot in ALTER <table> ADD FOREIGN KEY
statement genarated by the comparer


2. Stored Procedure Editor:

* Recompiling of recursive procedure was improved.
If the number of input/output parameters of recursive procedure
was changed IBExpert first alters the procedure using commented
body, than - alters it in usual way.

* Fixed problem with editing of cursors (Firebird 2) in Lazy Mode.


3. Data Grid:

* Fixed problem with grouping of records when the dataset
contains Int64 (BIGINT) fields.


4. Script Executive:

* Now always uses the default client library specified in
Options | Environment Options till SET CLIENTLIB overrides it.


5. SQL Editor:

* Added possibility to display query results below the Code Editor
so you're able to see query text and query results at the same time.
You can customize this in Options | Environment Options | SQL
Editor -
Separate Result Page. Turn this option off to place results
grid below the Code Editor.


6. Firebird 2.0 blocks (EXECUTE BLOCK):

* Added possibility to debug Firebird 2.0 blocks.
You can run the Block Debugger from the SQL Editor or
debug blocks directly in the Block Editor.

* Added possibility to execute Firebird 2.0 blocks stored
in registered databases or in the User Database from
the Database Explorer. Use the DB Explorer context menu or
F9 shortcut to execute blocks.


7. Report Manager:

* Fixed problem with saving reports to a disk.



8. IBEBlock:
===============================
* ibec_ExtractMetadata - added IncludeCharset option.
This option forces IBExpert\IBEScript to include the
CHARACTER SET clause into definition of all char\varchar
domains\columns\parameters even if their charset is equal
to the default charset of the database.

Example:

ibec_ExtractMetadata(db, 'E:\meta.sql', 'GenerateCreate;
IncludeCharset;ExtractPrivileges; ExtractDescriptions',
cbb);

===============================
* ibec_GUID function added.
This function creates a string representation of a GUID,
a unique 128-bit integer used for CLSIDs and interface
identifiers.

===============================
* ibec_Power function implemented.

Syntax:
function ibec_Power(Base, Exponent : double precision) :
double precision;

ibec_Power raises Base to any power. For fractional
exponents Base must be greater than 0.

The ibec_Power returns NULL if it is impossible to raise
Base to specified power (for example, ibec_Power(-4, 0.5)
will return NULL).

===============================
* ibec_fs_ReadString function implemented.
Syntax:
function ibec_fs_ReadString(FileHandle : variant; Count : integer) :
string;

Use ibec_fs_ReadString to read Count bytes from the file stream
created with ibec_fs_OpenFile into a variable in cases where
the number of bytes is known and fixed.

Example:

execute ibeblock
as
begin
fs = ibec_fs_OpenFile('C:\MyData.dat', __fmOpenRead);
if (fs is not null) then
begin
ibec_fs_Seek(fs, -100, __soFromEnd);
MyStr = ibec_fs_ReadString(fs, 100);
ibec_fs_CloseFile(fs);
end
end

===============================
* ibec_Exec function implemented.
Syntax:
function ibec_Exec(CommandLine : string; Options : string;
CallbackBlock : string) : variant;

The ibec_Exec function runs the specified application.

Parameters:
CommandLine - the command line (filename plus optional
parameters) for the application to be executed.
Options - String containing additional options delimited
with semicolon;
possible options are:
OutFile=<file_name> - name of the file where
the output of the
application will be stored.
ConvertToANSI - if specified, the output
will be translated from
the OEM-defined character
set into an ANSI string
CallbackBlock - A callback IBEBlock which will be executed for
each output line. The callback IBEBlock must
have at least one input parameter, which will
be used to pass an output line within it.
If there is no callback block use NULL or
an empty string as a value of this parameter.

The following example uses the ibec_Exec function to restore a
database from a backup copy using GBAK.EXE:

execute ibeblock
as
begin

cbb = 'execute ibeblock (LogStr variant)
as
begin
ibec_Progress(LogStr);
end';

res = ibec_Exec('C:\Program Files\Firebird\Bin\gbak.exe
-r -v -rep -user SYSDBA -pas masterkey
E:\test_db.fbk E:\test_db.fdb',
'OutFile=E:\Restore.log; ConvertToANSI', cbb);

if (res = 0) then
ibec_ShowMessage('Restore process completed successfully');
else
ibec_ShowMessage('Restore process failed with exit code =
'||res);
end

===============================
* ibec_BackupDatabase function implemented.
Syntax:
function ibec_BackupDatabase(DatabaseToBackup : string;
BackupFiles :string; Options : string;
CallbackBlock : string) : variant;

The ibec_BackupDatabase starts the backup process using the
server Services Manager.
It returns NULL if the backup process succeeded, otherwise
it returns an error message.

Options:
DatabaseToBackup - full connection string to the database
including server name or IP address if
the database is located on a remote server
(for example, '123.123.123.123:D:\DATA\MyDB.fdb)
BackupFiles - list of backup files delimited with semicolon.
Each list item should be formatted as
<file_name>=<file_size>.
<file_size> specifies the length of the result
backup file in bytes (no suffix),
kilobytes (K), megabytes (M) or gigabytes (G).
IMPORTANT: All backup files will be created
on the server side because of usage of the
Services Manager!
Options - list of backup options delimited with semicolon.
Possible options are:
USER=<user_name> - user name;
PASSWORD=<password> or
PAS=<password> - password;
CLIENTLIB=<client_lib_name> - name of
clientlib dll;
gds32.dll will be used if not specified;
IGNORE (or IG) - ignore bad checksums;
LIMBO (or L) - ignore transactions in limbo
METADATA (or META_DATA, or M) - backup
metadata only
GARBAGECOLLECT (or GARBAGE_COLLECT, or G) -
inhibit garbage collection
OLDDESCRIPTIONS (or OLD_DESCRIPTIONS, or OL) -
save old style metadata descriptions
NONTRANSPORTABLE (or NON_TRANSPORTABLE, or NT) -
not-transportable backup file format
CONVERT (or CO) - backup external files as tables
LOGFILE=<log_file_name> - name of output log file.
CallbackBlock - A callback IBEBlock which will be executed for
each output line. The callback IBEBlock must
have at least one input parameter, which will be
used to pass an output line within it.
If there is no callback block use NULL or
an empty string as a value of this parameter.

Example 1, Backup database to a single backup file with no output
(silent mode):

execute ibeblock
as
begin
res = ibec_BackupDatabase('LOCALHOST:D:\FB2_DATA\TESTDB.FDB',
'E:\TESTDB.FBK',
'ClientLib=C:\Program
Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA; G;',
null);
if (res is null) then
ibec_ShowMessage('Backup completed successfully.);
else
ibec_ShowMessage(res);
end


Example 2, Backup database to multiple backup files with full output:

execute ibeblock
as
begin
cbb = 'execute ibeblock (LogStr variant)
as
begin
ibec_Progress(LogStr);
end';

res = ibec_BackupDatabase('LOCALHOST:D:\FB2_DATA\TESTDB.FDB',
'E:\TESTDB_1.FBK=200M;
E:\TESTDB_2.FBK=200M; E:\TESTDB_3.FBK=200M',
'ClientLib=C:\Program
Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA;
IGNORE; L; LogFile=E:\Backup.log',
cbb);
if (res is null) then
ibec_ShowMessage('Backup completed successfully.);
else
ibec_ShowMessage(res);
end

===============================
* ibec_RestoreDatabase function implemented
Syntax:
function ibec_RestoreDatabase(BackupFiles : string; RestoreTo :
string;
Options : string; CallbackBlock :
string)
: variant;

The ibec_RestoreDatabase starts the restore process using the
server Services Manager. It returns NULL if the restore process
succeeded, otherwise it returns an error message.

Options:
BackupFiles - list of backup files delimited with semicolon.
RestoreTo - list of database files delimited with semicolon.
Each list item (in case of restore to multiple
files) should be in format
<db_file_name>=<file_size_in_pages>.
<db_file_name> - full connection string to
the database including server name or IP address
if the database is located on a remote server
(for example, '123.123.123.123:D:\DATA\MyDB.fdb)
<file_size_in_pages> - size of the database file
in pages (!).
Options - list of restore options delimited with
semicolon. Possible options are:
USER=<user_name> - user name;
PASSWORD=<password> or
PAS=<password> - password;
CLIENTLIB=<client_lib_name> - name of
clientlib dll;
gds32.dll will be used if not specified;
PAGESIZE=<page_size> or
PAGE_SIZE=<page_size> - page size of the
restored database
PAGEBUFFERS=<buffers> or
BUFFERS=<buffers> or
BU=<buffers> - overrides page buffers default
INACTIVE (or DEACTIVATEINDEXES, or I) -
deactivate indexes during restore
KILL (or NOSHADOWS, or K) -
restore without creating shadows
NO_VALIDITY (or NOVALIDITY, or N) -
do not restore database validity conditions
ONE_AT_A_TIME (or ONEATATIME, or O) -
restore one table at a time (commit after
each table)
REPLACE_DATABASE (or REPLACEDATABASE, or REP) -
replace database from backup file
CREATE_DATABASE (or CREATEDATABASE, or C) -
create database from backup file
USE_ALL_SPACE (or USEALLSPACE, or USE) -
do not reserve space for record versions
META_DATA (or METADATA, or M) -
restore metadata only
LOGFILE=<log_file_name> - name of output log file.
CallbackBlock - A callback IBEBlock which will be executed for
each
output line. The callback IBEBlock must have at least
one input parameter, which will be used to pass an
output line within it. If there is no callback block
use NULL or an empty string as a value of this parameter.

Example 1, Restore database from single backup file with no output
(silent mode):

execute ibeblock
as
begin
res = ibec_RestoreDatabase('E:\TESTDB.FBK',
'LOCALHOST:E:\TESTDB.FBK',
'ClientLib=C:\Program
Files\Firebird\Bin\fbclient.dll;
Password=masterkey;
User=SYSDBA;OneAtATime; PageSize=8192; C',
null);
if (res is null) then
ibec_ShowMessage('Restore completed successfully.);
else
ibec_ShowMessage(res);
end

Example 2, Restore database from multiple backup files to single
database file
with full output:

execute ibeblock
as
begin
cbb = 'execute ibeblock (LogStr variant)
as
begin
ibec_Progress(LogStr);
end';

res = ibec_RestoreDatabase('E:\TESTDB_1.FBK; E:\TESTDB_2.FBK;
E:\TESTDB_3.FBK',
'LOCALHOST:E:\TESTDB.FBK',
'ClientLib=C:\Program
Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA;
C; REP; O; LogFile=E:\Restore.log',
cbb);
if (res is null) then
ibec_ShowMessage('Restore completed successfully.);
else
ibec_ShowMessage(res);
end


Example 3, Restore database from multiple backup files to multiple
database files with full output:

execute ibeblock
as
begin
cbb = 'execute ibeblock (LogStr variant)
as
begin
ibec_Progress(LogStr);
end';

res = ibec_RestoreDatabase('E:\TESTDB_1.FBK; E:\TESTDB_2.FBK;
E:\TESTDB_3.FBK',
'LOCALHOST:E:\TESTDB1.FBK=20000;
LOCALHOST:E:\TESTDB2.FBK=20000;
LOCALHOST:E:\TESTDB3.FBK',
'ClientLib=C:\Program
Files\Firebird\Bin\fbclient.dll;
Password=masterkey; User=SYSDBA;
C; REP; O; BU=3000;
LogFile=E:\Restore.log',
cbb);
if (res is null) then
ibec_ShowMessage('Restore completed successfully.);
else
ibec_ShowMessage(res);
end


9. IBEScript.exe\IBEScript.dll updated accordingly.

10. A lot of minor bugfixes and improvements...

11. There will be a second Newsletter in the next
days with some more documentation about new functions
not mentioned here, but already usable.

12. Firebird Database Certification Training 2006

Die Themen unseres nächsten Firebird Certification Trainings in Oldenburg:

1. Firebird: SQL Grundlagen `(1 Tag)
2. Firebird: Grundlagen für Entwickler (2 Tage)
3. Firebird: Grundlagen für Datenbankadministratoren (2 Tage)
4. Firebird: Leistungssteigerung und Optimierung (1 Tag)
5. Datenbankportierung von Paradox, dBase und MS Access auf Firebird
(1 Tag)
6. Delphi Datenbankanwendungen portieren von BDE auf Firebird (1 Tag)
7. Datenbankauswertungen mit Delphi, Firebird und Fastreport (1 Tag)
8. Dynamische Webanwendungen mit Firebird und PHP (1 Tag)

Nächster Termin: 27.3.-7.4.2006
Anmeldung und Details unter
http://www.h-k.de/fbct/fbct.pdf


13. Distribution of IBExpert Modules

* To be allowed to distribute any of the IBExpert Modules
(ibexpert.exe, ibescript.exe, ibescript.dll, ibeextract.exe
and ibecompare.exe) 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 www.ibexpert.com 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 valid.

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.


The IBExpert Team

The most Expert for InterBase and Firebird www.ibexpert.com
HK Software - Gerhard Stalling Strasse 47a - 26135 Oldenburg - Germany
Phone/Fax +49 700 IBEXPERT (42397378) www.h-k.de info@...
Training and Support for Delphi, InterBase, Firebird, AS/400