FIBPlus 6.30 Release Notes

New features and enhancements:

  1. A new method function FIBDataSet.IsComputedField(Field:Variant): boolean; has been added. It returns true even for server-calculated fields. Its argument is either a field name in the dataset or a field number in the filed list.
  2. A new method procedure FIBDataSet.AssignProperties(Source: TFIBCustomDataSet); has been added. It sets values from the Source dataset properties to all properties. This method is similar to FIBQuery.AssignProperties.
  3. Two dataset properties have been added. They enable access to SELECTSQL clauses:
    property GroupByClause:string;
    property MainWhereClause:string;
    property PlanClause:string;
  4. A new define {$DEFINE}has been added to It activates defines for particular SynEdit builds. This build available at the SynEdit site is called
  5. FIBDataBase has a new SQLLogger property. The FIBAppStatistics component has beed removed. Now its functionality is realized in the FIBSQLLogger component.
    FIBSQLLogger is a component enabling to log SQL queries and gather query statistics.
    property ActiveStatistics:boolean - Shows whether statistics gathering is active.
    property ActiveLogging:boolean - Shows whether logging is active
    property LogFileName:string - Shows the log file name
    property StatisticsParams :TFIBStatisticsParams - Shows what parameters are used for statistics gathering

    property LogFlags: TLogFlags - Shows what operations are logged
    property ForceSaveLog:boolean - Forces log writing. I.e. every query is written to the file.

    function ExistStatisticsTable:boolean; - Shows whether a table for statistics keeping exists
    procedure CreateStatisticsTable; - Creates a table for keeping statistics in the database

    procedure SaveStatisticsToDB(ForMaxExecTime:integer=0); - Saves the statistics to a database table. The parameter shows statistics for long-running queries. Set the ForMaxExecTime value equal to the shortest query execution time, and you will get statistics on all longer queries.
    procedure SaveLog; - Saves the log into the file (necessary if ForceSaveLog is set to True)
    (Special thanks to Jonathan Neve).
  6. A feature enabling to deactivate the component name causing an error, has been added. For this use the code:
    use FIB; Exclude(IBErrorMessages, ShowRaiserName).
  7. isc_tpb_no_savepoint transaction parameter is handled now for better InterBase 7.5 support.
  8. A new variant of the FIBQuery.ExecWPS; method has been implemented:
    procedure ExecWPS(ParamSource:ISQLObject; AllRecords:boolean=True); overload;
    It works almost the same as ExecWPS. I.e. it runs ExecQuery, using the ParamSource parameter as a parameter source. The second argument tells the method to execute ExecQuery either for each ParamSource record or only for the current.
  9. Now pFIBClientDataSet supports ISQLObject interface. Along with Feature 2 this enhancement enables easy data transfer from the client dataset to the InterBase/Firebird database. An example:
  10. Minor enhancements in FIBQuery parameter handling (Thanks to Andry Ogorodnik)
  11. New feature of Firebird 2 is supported now. Firebird syntax is:
    Insert Into Table1 ...
    If you write such InsertSQL in the dataset, then all the fields returned in the RETURNING clause after execution of the Post method will be updated in the dataset. This feature helps to get field values formed by triggers without additional Refresh. I.e. you may also get primary key values without calling the generator at client.
  12. Minor enhancements for better C++ Builder and Kylix support.
  13. gen_id() handling has been added to SQLEditor (in SynEdit in Code Proposal). Pressing Ctrl+space you may see a list of generators (thanks to Jonathan Neve)
  14. SQLEditor shows field types. (thanks to Jonathan Neve)

Bugs fixed:

  1. Wrong query generation in confined cache mode, if the order by clause had comments. Fixed
  2. Incorrect work of the poKeepSorting option on adding the First record to the dataset. Fixed
  3. An error of primary key generation in Midas applications if the provider had ResolveToDataset = False. Fixed
  4. An error in Numeric fields on using different section formats, such as '#,##0.00;#,##0.000;Zero'. Fixed
  5. Some errors in ÑloneCurrRecord, macros and queries; DoSortEx in OpenAsClone. Fixed.
  6. An error in the SQL parser. It appeared if the parameter followed after "-", i.e. SET IS_DELETE = -?OLD_RING_IDENT. Fixed
  7. An error in the OpenAsClone method. It appeared on sorting and modifying the data in the clone dataset. Fixed
  8. An error of handling the poTrimCharFields option. It appeared when a user inserted too many spaces at the end of the string while working with Varchar. After Post these end spaces were kept in memory whereas the data was shown without them. Fixed
  9. Incorrect work of ExtLocateNext with the eloInSortedDS option. Fixed
  10. An error of Refresh with poVisibleRecno set to True in the master-detail link. On adding a record to the Detail dataset and after Refresh, the Master dataset changed the current position to some optional record. Fixed
  11. Incorrect generation of modifying queries on changing SelectSQL together with the alias of the modifying table. Fixed
  12. Incorrect work of TpFIBTableInfoCollect.ClearForTable for tables with Names written in "". Fixed
  13. The Eof flag remained if the cursor stood at the last dataset record after Locate. Fixed
  14. In some cases an exception appeared in RefreshSQL. EFIBInterbaseError with the SQL code -804 "Incorrect values within SQLDA structure". Fixed
  15. Incorrect dataset work with macros of the same name and query text changes after setting the macro values.. Fixed
  16. Incorrect behaviour of the LocateNext method. It returned incorrect results if the last current dataset record met the searching condition. Fixed
  17. Incorrect C++ Builder package compilation. Fixed
  18. An error appeared in poProtectedEdit on closing the transaction by CommitRetaining. Fixed
  19. An error Invalid Blob_id appeared on inserting a blob from the dataset by the stored procedure without Refresh after Post. Fixed
  20. An error in the TFIBXSQLVAR.SetAsXSQLVAR method. Sometimes it caused errors in BatchXXX methods.
  21. An error in poKeepSorting, values of sorted fields were not inserted after Insert. Fixed.
  22. Changes in IB_Services (defines for Kylix).

Preview text: Read about better library stability, 15 enhancements, 20 bug fixes and better compatibility with C++ Builder, Kylix, Firebird 2 and InterBase 7.5.
Prices in Euro:

235 (1 copy)
1250 (unlimited)

Volume discounts are available...


Our 911 dispatch center needed a program to monitor the status of equipment used in emergency situations. If one dispatcher modified the status of a piece of equipment, all the other dispatchers needed to see this change immediately. The most elegant way to implement this was by using Firebird Events to asynchronously notify all the users whenever a pertinent change had occurred at the database server. After failing to implement this myself using the Firebird API, I bought a copy of FIBPlus. I dropped a Database, EventAlert and ErrorHandler control into a C++ Builder DataModule and within minutes I had all the functionality I needed. I was able to complete the project quickly and the users are thrilled with the results because I gave them more features than they originally asked for. >>

Darryl Caillouet Programmer City of Little Rock
Download full versions and updates in your Personal Area