TFIBGUIDField values are automatically generated on inserting a new record.
Now evident use of string values is possible in the WHERE clause with Unicode-connection
to the database (SELECT * FROM T1 WHERE MyField = 'string'). Note: Versions
6.1 downwards can use only parameter values in Unicode connection.
FIBPlusTools have been adapted for Delphi 2005.
The BatchOutputRawFile method of the TpFIBQuery component has been changed:procedure
BatchOutputRawFile (const FileName: string; Version: integer = 1);
The second argument defines the way of writing to the file.
If Version = 1, the old principle works: data are shown in the external file
in the order, determined by SQL query fields. It is implied that the parameters
will have the same order on reading the written data by the BatchInputRawFile
method in a reading SQL. A number of TpFIBQuery fields (field data were written)
and a number of TpFIBQuery parameters (the parameters will read the data)
must coincide. String fields require conformity of the length of reading fields
and the reading parameter; name conformity is not required.
If Version = 2, a new writing principle is used. Besides the data, secondary
information on fields (their name, type and length) is also written into the
file. When being read, the data will be taken according to the name conformity.
The number of fields and their order in the writing TpFIBQuery may not conform
to those in the reading TpFIBQuery. No field type and length conformity is
required. Field names must conform.
function TableAliasForField(FieldIndex:integer):string; overload;
function TableAliasForField(const aFieldName:string):string; overload;
These functions return the table alias by a field number or by a field name.
ISQLObject interface has a new method:
function FieldName (FieldIndex: integer): string;
Now maximum event length in TSIBfibEventAlerter is 128 symbols instead
Now it's possible to use calculated Blob fields in your applications. To
enable this, the TFIBBlobField class has obtained a new property IsClientField:
Boolean, and TpFIBDataSet has obtained a new OnFillClientBlob:TOnFillClientBlob
Now if IsClientField of the blob field is True, the field value is not taken
from the database or not written into it. (though the blob field must be sill
present in Select query). To fill in field values you should set the OnFillClientBlob
event handler of a corresponding TpFIBDataSet. For example:
procedure TForm1.NoLookupFIBDataSetFillClientBlob(DataSet: TFIBCustomDataSet;
Field: TFIBBlobField; Stream: TFIBBlobStream);
A new poCacheCalcFields option has been added to the TpFIBDataSet component.
If it is True, the results of calculated and lookup fields are stored in cache.
This enables to recalculate the fields only after the record modification.
This mode is recommended if the calculated fields are used for complex calculation,
or if there are used local sorting, filtering and searching by calculated
forNoRule: Origin is not set (developers should set it themselves).
forTableAndFieldName: Origin is set as a string: "physical table name
"+"."+"physical field name".
forClientFieldName: Origin conforms with Field.FieldName.
forTableAliasAndFieldName: Origin is set as a string: "table alias in
query"+"."+"physical field name".
The forNoRule and forClientFieldName rules are useful for the developers who
use FIBPlus together with DevExpress. The forTableAliasAndFieldName rule is
important in Firebird 2.
Now in the AutoUpdateOptions.UpdateTableName property it is possible to
set not simply a table name, but a table name + " " + a table alias.
If the table name is not upper-case (dialect 3), it must be written in double
quotes (" ").
This enables to correctly generate modifying queries for Firebird 2, as FIBPlus
effectively works with such constructions as:
Select a.*, b.Description DescripB
from Tasks a
left join Tasks b on (b.id = a.id)
In other words, it works well with the constructions, in which one table is
used more than once. The Description field must not be edited. Previous versions
of FIBPlus (6.1 downwards) and IB/FB do not work correctly with such queries.
Now in FIBPlus 6.2 it's enough to set AutoUpdateOptions.UpdateTableName :=
'Tasks a' instead of AutoUpdateOptions.UpdateTableName := 'Tasks'.
A bug with the TFIBGUIDField class (the class was not registered). Fixed.
The Locate method worked incorrectly with Unicode fields. Fixed.
An error in the SQL editor in Delphi 2005. Switch to Code Editor worked
An error in the SQL parser, which appeared on uncommon queries. Fixed.
An error in GUID fields in the master-detail mode. Fixed.
The SetAsBCD and GetAsBCD methods of the FIBBCDField class worked incorrectly
with calculated fields. Fixed.
An error in the AsString property of the TpFIBQuery component on working
with Unicode. Fixed.
Fields of the NUMERIC(xxx, yyy) type were not shown correctly on using
the DisplayFormat property for values which were not precised well by the
Double type. Fixed.
An error of inserting in an empty TpFIBDataSet, if poKeepSorting is True.
An error in ApplyUpdates on deleting all records. Fixed.
ExtLocate into a sorted query in TpFIBDataSet worked incorrectly, if KeyFields
order differed from real sorting field order. Fixed.
Now, Search is a simple running over, on calling ExtLocate with the eloInSortedDS
option into an unsorted query in TpFIBDataSet. Previous versions showed incorrect
results of such Search. Fixed.
Preview text: This version better supports Unicode and is compatible with Firebird 2 and Delphi 2005