🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: borland.public.interbase.thirdparty
1 messages
1 total messages Started by Holger Klemt Tue, 27 Feb 2007 15:55
ANN: IBExpert New Version 2007.02.22 ready for Download
#183
Author: Holger Klemt
Date: Tue, 27 Feb 2007 15:55
175 lines
5768 bytes
IBExpert New Version 2007.02.22 ready for Download

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

What is new?


IBExpert 2007.02.22
------------------------------------------

1. Support of known Friebird 2.1 features implemented:
2. Create SUID procedures
3. Database Designer: drag-n-drop, autoincrement
4. Extract Metadata: support for secondary database
5. IBEBlock: ibec_Array, FOREACH
6. A lot of minor bugfixes and small improvements...



and much more ...

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
www.ibexpert.com or just ask register@ibexpert.com
for details.



IBExpert 2007.02.22
------------------------------------------

1. Support of known Friebird 2.1 features implemented:

   * Global temporary tables

   * Triggers on database events

   * Common table expressions (WITH, FOR WITH)

   * Domains in procedures (TYPE OF)

   * MERGE

   * UPDATE OR INSERT


2. Create SUID procedures.   New mechanism of
    composing texts of SUID procedures based on
    IBEBlock   implemented.

3. Database Designer:

   * Added possibility to drag-n-drop objects from
     the Project View tree.

   * Added support for autoincrement fields based
     on IBEBlock feature. To automaticaly create
     generators and triggers for autoincrement
     fields you have to mark necessary fields as
     autoincrement and define "For each
     autoincrement field" block
     (Model Options | Blocks):

     execute ibeblock (
         HModel variant comment 'Current model handle',
         HTable variant comment 'Current table handle',
         HColumn variant comment 'Current column handle')
     returns (
         GenScript variant,
         TrgScript variant,
         ProcScript variant)
     as
     begin
       LF = ibec_CRLF();

       TblName = ibec_dbd_GetObjectProp(HTable, 'NAME');
       FldName = ibec_dbd_GetObjectProp(HColumn, 'NAME');

       GenName = 'GEN_' || TblName || '_' || FldName;
       GenName = ibec_AnsiUpperCase(GenName);

       TrgName = TblName || '_BI';
       TrgName = ibec_AnsiUpperCase(TrgName);

       GenScript = 'CREATE GENERATOR ' || GenName || ';' || LF ||
                   'SET GENERATOR ' || GenName || ' TO 0;' || LF;

       TrgScript = 'CREATE TRIGGER ' || TrgName || ' FOR ' || TblName || 
LF ||
              'ACTIVE BEFORE INSERT POSITION 0' || LF ||
              'AS' || LF ||
              'BEGIN' || LF ||
              '  IF (' || FldName || ' IS NULL) THEN' || LF ||
              '    NEW.' || FldName || ' = GEN_ID(' || GenName || ', 
1);' || LF ||
              'END^' || LF || LF;
     end



4. Extract Metadata:

   * Added support for secondary database files info, corresponding
     ALTER DATABASE statements will be included into result script
     as comments.


5. IBEBlock:

   * ibec_Array function implemented. This function returns a 
one-dimensional     a 0-based array of values.

     Syntax:

     function ibec_Array(val1 [, val2, ..., valN) : variant;

     Example:

     MyVar = ibec_Array('Some text', 23, NULL, 56.32);

     The code above is equal to following:

     MyVar[0] = 'Some text';
     MyVar[1] = 23;
     MyVar[2] = NULL;
     MyVar[4] = 56.32


   * FOREACH statement implemented. This satement simply gives a way
     to iterate over arrays.

     Syntax:
           FOREACH (var1 AS var2 [KEY | INDEX var3]) DO
       <statements>
     FOREACH loops over the array given by var1.
     On each loop, the value of the current element
     is assigned to var2.
     If KEY (INDEX) var3 clause is specified, the current
     element's key will be assigned to the variable var3 on
     each loop.
     Example:

     MyVar = ibec_Array('Some text', 23, NULL, 56.32);
     foreach (MyVar as val key id) do
       if (val is not null) then
         ibec_ShowMessage('MyVar[' || id || '] value is: ' || val);

     The code above is equal to following:

     MyVar = ibec_Array('Some text', 23, NULL, 56.32);
     for id = 0 to ibec_High(MyVar) do
     begin
       val = MyVar[id];
       if (val is not null) then
         ibec_ShowMessage('MyVar[' || id || '] value is: ' || val);
     end

6. A lot of minor bugfixes and small improvements...




The IBExpert Team


The most Expert for InterBase and Firebird --- www.ibexpert.com
HK Software - Oldenburger Str 233 - 26203 Wardenburg - Germany
Phone/Fax +49 700 IBEXPERT (42397378) www.h-k.de
Training and Support for Delphi, InterBase, Firebird, AS/400
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads