New features and enhancements:

  1. Support of C++ Builder 2006 has been added.
  2. Support of charset UTF8 fields for Firebird 2 has been added.
  3. TpFIBDatabase has a new property UseBlrToTextFilter :Boolean. It activates/deactivates handling of BLOB fields with Blr (2) and Acl(3) subtypes.
  4. Now the FIBDatabase.QueryValueAsStr method returns an empty string, if the query returns nothing or the Null field.
  5. TpFIBDatabase has a new event handler: TOnApplyFieldRepository=procedure(DataSet:TDataSet;Field:TField;FieldInfo:TpFIBFieldInfo) of object;
  6. DSContainer has a new event handler: TOnApplyFieldRepository=procedure(DataSet:TDataSet;Field:TField;FieldInfo:TpFIBFieldInfo) of object;
  7. DSContainer has a new property: IsGlobal:boolean. If this property is set to True, DSContainer works for ALL datasets of the application.
  8. SQL queries "COMMIT" and "ROLLBACK" are handled differently now. Instead of the queries the server gets corresponding transactions. Such behaviour enables to correctly close the queries, executed in the closed transaction.

Note: New features 4-6 enable developers to easily use their own settings in the field repository.


If you need to set the EditMask property, add the EDIT_MASK field to the repository table; create a container; make it global by setting the IsGlobal property to True; and write the following code in the OnApplyFieldRepository event handler:

procedure TForm1.DataSetsContainer1ApplyFieldRepository(DataSet: TDataSet; 
Field: TField; FieldInfo: TpFIBFieldInfo); 

Bugs fixed:

  1. The error repository editor incorrectly worked on selecting "Unique Indices". Fixed .
  2. An error in the method FIBDataSet.RecordFieldValue(Field:TField;aBookmark:TBookmark):Variant; has been fixed.
  3. If the PLAN clause in TpFIBDataSet.SelectSQL used implicit JOIN which began with (, and a new value was set to TpFIBDataSet.PlanClause, the query resulted with a wrong PLAN clause (with unnecessary ( symbol after the word PLAN). Fixed.
  4. Incorrect error message handling of user exceptions in TpFibErrorHandler for Firebird 2 (because of a new feature PSQL Stack Trace in FB2). Fixed.
  5. Incorrect handling of lost connection on restoring attempts. Fixed.
  6. There was no BOOLEAN field handling in TFIBCustomDataSet.RecordFieldValue for InterBase 7. Fixed.
  7. An error CloneCurRecord: error with boolean field in record (IB7). Fixed.
  8. An error in LocateNext. LocateNext returned True if the last dataset record satisfied the Search conditions and Search started with this record. Fixed.
  9. Incorrect work of LocateXXX methods with calculated field filtering. It appeared if Locate was done in not calculated fields, whereas filtering (Filtered) was done in calculated fields. Fixed.
  10. EAccessViolation after handling OnUpdateError if CachedUpdates=True and OnUpdateError "UpdateAction:=uaAbort;". Fixed.
  11. An error of working with stored procedures in SQLEditor. Fixed.
  12. An error on generating RefreshSQL, if the table alias began with "AS". Fixed.
  13. An error of executing several execute blocks. Fixed .
  14. An error of lost connection handling in case of multiple connections to different databases. Fixed .
  15. A minor error in FIBQuery.PrepareArraySqlVar. Fixed.
  16. An error of setting a string value '000...' to the BCD field. An example: FIBBCDField1.asString:='0000'; Fixed.

Preview text: What's new in version 6.45: 7 enhancements, 16 bug fixes. Support of C++ Builder 2006.
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