Fast, flexible and high-performance component library for Delphi, C++ Builder and Kylix intended for work with InterBase and Firebird using Direct InterBase API.
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.
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.
Two dataset properties have been added. They enable access to SELECTSQL clauses: property GroupByClause:string; property MainWhereClause:string; property PlanClause:string;
A new define {$DEFINE synedit-201b.zip}has been added to pFIBPropEd.inc. It activates defines for particular SynEdit builds. This build available at the SynEdit site is called synedit-201b.zip.
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. Properties: 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.
Methods 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).
A feature enabling to deactivate the component name causing an error, has been added. For this use the code: use FIB; Exclude(IBErrorMessages, ShowRaiserName).
isc_tpb_no_savepoint transaction parameter is handled now for better InterBase 7.5 support.
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.
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: FIBQuery1.ExecWPS(FibClienDataSet1,True)
Minor enhancements in FIBQuery parameter handling (Thanks to Andry Ogorodnik)
New feature of Firebird 2 is supported now. Firebird syntax is: Insert Into Table1 ... RETURNING FIELD1,FIELD2... 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.
Minor enhancements for better C++ Builder and Kylix support.
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)
SQLEditor shows field types. (thanks to Jonathan Neve)
Bugs fixed:
Wrong query generation in confined cache mode, if the order by clause had comments. Fixed
Incorrect work of the poKeepSorting option on adding the First record to the dataset. Fixed
An error of primary key generation in Midas applications if the provider had ResolveToDataset = False. Fixed
An error in Numeric fields on using different section formats, such as '#,##0.00;#,##0.000;Zero'. Fixed
Some errors in ÑloneCurrRecord, macros and queries; DoSortEx in OpenAsClone. Fixed.
An error in the SQL parser. It appeared if the parameter followed after "-", i.e. SET IS_DELETE = -?OLD_RING_IDENT. Fixed
An error in the OpenAsClone method. It appeared on sorting and modifying the data in the clone dataset. Fixed
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
Incorrect work of ExtLocateNext with the eloInSortedDS option. Fixed
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
Incorrect generation of modifying queries on changing SelectSQL together with the alias of the modifying table. Fixed
Incorrect work of TpFIBTableInfoCollect.ClearForTable for tables with Names written in "". Fixed
The Eof flag remained if the cursor stood at the last dataset record after Locate. Fixed
In some cases an exception appeared in RefreshSQL. EFIBInterbaseError with the SQL code -804 "Incorrect values within SQLDA structure". Fixed
Incorrect dataset work with macros of the same name and query text changes after setting the macro values.. Fixed
Incorrect behaviour of the LocateNext method. It returned incorrect results if the last current dataset record met the searching condition. Fixed
Incorrect C++ Builder package compilation. Fixed
An error appeared in poProtectedEdit on closing the transaction by CommitRetaining. Fixed
An error Invalid Blob_id appeared on inserting a blob from the dataset by the stored procedure without Refresh after Post. Fixed
An error in the TFIBXSQLVAR.SetAsXSQLVAR method. Sometimes it caused errors in BatchXXX methods.
An error in poKeepSorting, values of sorted fields were not inserted after Insert. Fixed.
Coming from a Java/OO background, it has been a real pleasure working with FIBPlus in Delphi. I'm very picky about good code design, and FIBPlus has it in spades! >>
Nathan Probst, Co-Founder Kazoie LLC
FOR CUSTOMERS Download full versions and updates in our Customer's Center