1. Now FIBPlus supports RAD Studio XE.

2. Both FIBPlus branches have been merged into one (as you remember we had to support two versions because of multiple internal VCL differences in RAD Studio 2009 and its former versions), which supports all Delphi/BCB IDE versions.

3. Support of SQL_NULL parameters has been added for Firebird 2.5.

4. Now information about the client library name can be saved in local aliaces (the TpFIBDatabase component).

5. Now new methods - ShutDown and Online have been added to the TpFIBDatabase component (Attention: while working with Firebird 2, the ShutDown method can use the folowing options: isc_dpb_shut_multi, isc_dpb_shut_single and isc_dpb_shut_full)

6. In the TpFIBDatabase connection parameters the following Firebird 2 options are supported: isc_dpb_no_db_triggers e isc_dpb_utf8_filename.

7. In TpFIBBackupRestoreService options the following Firebird 2 parameters are supported: isc_spb_res_fix_fss_metadata and isc_spb_res_fix_fss_data.

8. Now you can store data of any size in BLOB fields by using the AsWideString property.

9. A new TpFIBDatabaseSchemaExtract component has been added. It enables developers to create an SQL-script with metadata descriptions, based both on separate objects and the whole database.

10. TpFIBDataSet has a new AutoUpdateOptions.UseRowsClause option. If it is set to true, the statement "ROWS 1" is added to the end of the generated SQL-text.

11. SaveToFile and LoadFromFile methods of the TpFIBDataSet component have a new AddInfo parameter, which enables you to save additional information:

    procedure SaveToFile(const FileName: string; AddInfo: AnsiString = '');
    procedure LoadFromFile(const FileName: string; var AddInfo: AnsiString);

12. The TpFIBDataSet component has a new RefreshFromDataSet method, which helps to do a multiple update of records of the current component
by using a select result from another dataset (as a list of records for update):
    procedure TpFIBDataSet.RefreshFromDataSet(RefreshDataSet: TDataSet; const KeyFields: string; IsDeletedRecords: boolean = False);

    The IsDeletedRecords parameter defines, whether to refresh records or delete them from the current dataset.

13. The TpFIBDataSet option has a new poDontCloseAfterEndTransaction key. If this option is set to true, the component stops closing itself if the reading transaction is finished.
Instead of closing itself the component completely fetches all unread data.

14. The SQL syntax highlighting has been added to the package of SQL editors. You do not need to install any third-party components.

15. A new pFIBTableChangeReader component has been added. It helps to get information about data changes for the defined table. Together with the TpFIBDataSet.RefreshFromDataSet method it can be used for intellectual data refresh in open datasets.

16. The SqlTxtRtns module has a new GetExportDataScript service procedure:

    procedure GetExportDataScript(DataSet: TDataSet; const TableName: string; OutPut: TStrings; UseFieldNames: boolean = True; FieldList: string = '');

This procedure operates with all records of the defined dataset and creates a script test for inserting all data. This script is split into EXECUTE BLOCK commands in order to increase its performance.      

Any dataset can be used as a data source (not necessarily TpFIBDataSet). So this method can be used for more effective data export/import between databases.

17. A new ExportDataToScript method has been added to the TpFIBDataSet component:

    procedure ExportDataToScript(OutPut: TStrings; TableName: string = ''; AllFields: boolean = False);
    This procedure helps to generate a set of commands for data inserting based on GetExportDataScript (see 16)

18. A new FIBPlus version includes integration with the Mirror Database Tools technology (we are preparing a commercial variant of this solution)

19. The package with examples has been updated.

20. The TpFIBDatabase component has a new GeneratorsCache: TGeneratorsCache property.

        The TGeneratorsCache type has the following properties:

        property CacheFileName: string;
        property UseGeneratorCache: TUseGeneratorCache;
        property GeneratorList: TOwnedCollection;
        property DefaultStep: Integer;

        The UseGeneratorCache property can have the following values: No, forAll or forGeneratorList.
                No - not to use cache of generators;
                forAll - to use cache for all generators;
                forGeneratorList - to use cache only for those generators, which are defined in GeneratorList.

        The CacheFileName property has a name of the file where the cache will be saved between sessions. If CacheFileName is not defined, the cache of generators won't be used.

        The DefaultStep property has a value, which defines the cache size for generators. By default this property has value 50.

        If the developer decides to use the cache of generators, then the TpFIBDatabase.Gen_Id method will try to get the  property value from cache before calling to the server for the next value. If the cache has a suitable value, TpFIBDatabase.Gen_Id does not call to the database. If there is no proper value, FIBPlus sends a query "Select gen_id(GenName, Step) from RDB$DATABASE" to the server, but sends a value from DefaultStep of the GeneratorsCache property as a Step value. This means that on the server the generator increases its value not on 1, but on a bigger value, e.g. on 50 (by default). The retrieved value is placed to the cache and is used to calculate the current generator value in the application.
It will be used as a result of the TpFIBDatabase.Gen_Id method, and then the cache value will be increased on 1 and saved. So in the cache interval is set to 50, 49 of next queries to the databaso will be missed on getting generator values, because these values will be taken from cache until it's empty.

Bugs fixed

1. An error in the TpFIBDataSet.RefreshFromQuery method has been fixed.

2. Fields of the TBCDField class could not be used if the application was working offline. Fixed.  

3. Some query texts were processed incorrectly, for example, in queries which comments were written closely to the meaning symbols. Fixed.

4. An error in processing of AutoUpdateOptions - changes of options made after the first dataset opening were not taken into consideration. Fixed.

5. Incorrect saving and reading in the SaveToFile and LoadFromFile methods of the TpFIBDataSet component, which appeared in RadStudio 2009-2010. Fixed.

6. An error of the poProtectedEdit option has been fixed. The place of the current record was changed on automatic calling of Commit. Fixed.

7. An error of filtering in the Filter property appeared on working with Unicode fields in Rad Studio 2010. Fixed.

8. An error in the TpFIBScripter component appeared on processing some procedures, if the SET TERM command was not used.

9. An error of work with SQL-texts with parameters in double quotes has been fixed.

10. An error in the TFIBXSQLVAR.IsRealType method has been fixed.

11. Errors in BatchInputRawFile and BatchOutputRawFile methods appeared in Rad Studio D2009-2010 have been fixed.

12. Now if you are using the BeforeFetchRecord event while fetching of records from the server, the fetching can be correctly stopped due to a new correct realization.

13. TpFIBScripter incorrectly processed terminators with many bytes, that's why you had to use only one-byte values in the SET TERM command. Fixed.

Preview text: What’s new in version 7.0: 20 enhancements, 13 bug fixes.
Prices in Euro:

235 (1 copy)
1250 (unlimited)

Volume discounts are available...


We use FIBPlus in all our applications, and we're very satisfied. If you're coming from IBX, FIBPlus is an especially good choice in as much as it has a common origin, and therefore, a similar structure, so conversion from IBX to FIBPlus is rather easy. >>

Jonathan Neve, Microtech, France
Download full versions and updates in your Personal Area