- Changes:
- {Date_time}: field DT of the structure {date_time} is replaced
with the private field dt. To provide maximal possible compatibilty
functions DT and Date_time. The first of them allows to avoid
changing code converting a structure {date_time} to a REAL number
(representing number of milliseconds from either 1,Jan,1601 or from
the 1,Jan,1BC depending on a platform); This change allows
using {date_time} on platforms not having real numbers big enough to
store amount of milliseconds from the start of the era;
{File_path} still uses REAL values
to store file times, but it is mostly platform-dependent, and later
this can be changed, too;
- {Stream} + {File_stream} + {Memory_stream}: To position
in streams and to work with streams size, structure {Long_int}.{long}
used now (in place of REAL). Thus, some small corrections could be
needed in existing projects;
- {DB}: in any case it is allowed to use table aliases including
single table in a query; this allows to use nested queries both in
case when a nested or master query uses a single table in a query;
- {DB}: Support added of operations EXISTS(SELECT...) and
NOT EXISTS(SELECT...) as SQL operands;
- Method CONSTRUCT of a class can be recursive and so it can have
the modifier RECURSIVE;
- Another kind of an assignment statement introduced:
dstruc, BUT[(f1, f2, ...)] = sstruc[, BUT (fN+1, fN+2, ...)]
It allows to assign fields of the source structure variable (sstruc)
to fields of the destination structure variable (dstruc), where
types of those structures could be different. While assigning,
fields listed in BUT lists are not assigned (skipped). For all other
destination fields it is necessary to exist correspondent source
fields (matching by the short name). And types of correspondent
fields must be equal. The assignment is not working (not
implemented) for array fields.
- While declaring a STRUCTURE type it is allowed to use inclusion
from another structure with the statement:
LIKE {structure_type}
or
LIKE {Class_name}.{structure_type}
In result, all the fields of the source structure type specified are
added on the top level of the declaring structure; In case of a
source structure from the same class, it should be already declared
above;
- Block comments in form -------------- 'text' in calls to
constructors of structures or objects like
x = {type}(field=value,
----------------- 'comment'
fieldN+1 =
valueN+1, ...)
- Fixes:
- Delphi/KOL, {DB}: reading Date fields from databases;
- Fixes in compiling overloaded functions;
|