07.12.2001 - Version 1.01

-----------------------------

17.05.2002 - Version 1.02 - Not public version (for registered users only)

  - About 30 bugs fixed

Additions:
  - Full parameters support in gbDataSet is added. For this purpose new
    functions and property are added:
    public
     property Params: {$IFDEF VER_IBX} TIBXSQLDA {$ELSE} TFIBXSQLDA {$ENDIF}
     function ParamByName(Idx : string): {$IFDEF VER_IBX} TIBXSQLVAR {$ELSE}
                TFIBXSQLVAR {$ENDIF};
     procedure ReQuery(KeepPosition: Boolean);

     Now it is possible to write, for example
       in SQL:
        where FIELD1=:MYPARAM

       in Code:
        gbDataSet1.ParamByName('MYPARAM').AsInteger := SomeValue;
        gbDataSet1.ReQuery(True);

     If you know that old and new query is not crossed, then for best perfomance
     set KeepPosition value to False.

    ATTENTION: Names of fields can not be used as names of parameters!

  - The restriction on existing DESC in ORDER BY is removed. Now it is possible
    in SelectSQL to write for example:
      ORDER BY FIELD1 DESC, FIELD2, FIELD3 DESC etc.

  - The new generator type OnNewRecord is added. This type works at once after
    Insert, before Post.

  - Full macros support in gbDataSet is added. For this purpose new
    functions and property are added:

    public
      function MacroByName(Idx: string): TgbMacro;
    published
      property MacrosDef: TMacrosDef read FMacrosDef write FMacrosDef;

    and in MacrosDef:

      property UseMacros: Boolean read GetUseMacros write SetUseMacros;
      property MacroChar: Char read GetMacroChar write SetMacroChar;
      property Macros: TgbMacros read FMacros write FMacros;

    Realization of macros is similar to their realization in famos RX-library:
    UseMacros: a flag that meaning whether are used macros in queries.
    MacroChar: the symbol which means the beginning of macro, by default '%'.
    Macros: the collection of current macros which is accessible in design-time
    by Object Inspector and in run-time by function MacroByName.

    ATTENTION: As against parameters, at replacement of values of macro you
    should do Close/Open, for example:

      In SQL:

        SELECT * FROM Table
        WHERE %WhereMacro

      In Code:

      DataSet.Close;
        DataSet.MacroByName('WhereMacro') := 'FIELD1 = 10';
      DataSet.Open;

-----------------------------

10.12.2002  Version 1.03

 - About 10 bugs fixed

Additions:

 - Support of Blob-fields is added. It is possible to get access Blob-field by
   call methods LoadFrom../SaveTo.. in TBlobField.

   ATTENTION: In "gb_DataSets Components" Blobs are not cached,  therefore use
   of visual controls is not recommended.

 - Design-time packages for Delphi 7, C ++ Builder 5, C ++ Builder 6 are added.

 - For the fields that have type CHAR(n) property FixedChar (in TStringField)
   works as in IBX.


-----------------------------

17.05.2004 Version 1.04

  - Compatibility with current versions IBX and FibPlus is added (at current
    moment it's - x.08 and 5.3 accordingly).
  - support of BOOLEAN-fields and long names of fields for IB7 is added.

    ATTENTION: Version 1.04 is incompatible with earlier versions of IBX and
               FibPlus! To work with these versions you can use version 1.03.

-----------------------------

Spirin Sergey.
"Paritet Soft".
