Compatibility Issues
Backwards Compatibility
Zim 9 is designed to be backward-compatible with previous versions. However, it may be necessary to modify object names in an existing Zim 8.x or earlier database to avoid conflicts with new fields, constants, and keywords that have been introduced into newer versions of the Zim language.
The first time you run the Zim IDE in a new Zim version, Zim automatically creates these fields and constants.
Running the version of ZIMINIT shipped with Zim initializes new databases containing any new fields and constants.
This document presents changes to each Zim version in chronological order, starting at Zim 4.x . Since changes are cumulative, it is recommended that you read the whole document.
Migrating from Zim 4.x to Zim 7.x
Zim 4.x developers should read Migrating from Zim 4.x to Zim 7.x. This document details the changes to the Zim Language and User Interface since version 4.2.
Introduced in Zim 5.1
A number of new keywords and data dictionary objects were introduced in Zim 5.1.
Introduced in Zim 5.2
Zim 5.2 required a minor conversion for users of client-server systems. This conversion is described in detail in the section “Client-Server – Remote Name Mapping”. The conversion is performed automatically the first time the Development Center or Screen Painter is accessed.
Several new fields, constants, and keywords were introduced into the language which should be checked to ensure that they do not conflict with existing object names.
Several new fields were added to support remote object names:
Owner Name | Field Name | Type | Length |
EntitySets |
RemoteOwnerName |
varalpha |
128 |
Relationships |
RemoteOwnerName |
varalpha |
128 |
EntitySets |
RemoteName |
varalpha |
256 |
Fields |
RemoteName |
varalpha |
256 |
Relationships |
RemoteName |
varalpha |
256 |
New constants that are used as arguments to SET commands are: TableType, RemName and RemOwner.
A constant, $ODVersion, was added to track the version of the object dictionary.
A new keyword was added: DefaultType.
The first time that you run the Development Center or the Screen Painter in version 5.4, Zim automatically creates these fields and constants. Running the 5.4 version of ZIMINIT to initialize new databases also creates these fields and constants.
The following system EntitySet fields have been flagged not required.
Owner Name | Field Name(s) |
FormFields |
BC, FC, Row, Col, Wdth, Hght |
Forms |
Wdth, Hght |
DisplayForms |
Row, Col |
Displays |
Wdth, Hght |
Menus |
BC, FC |
Windows |
BC, FC, Row, Col, Wdth, Hght |
Any compiled code that updates these system EntitySets needs to be recompiled. Also, care must be taken to check for nulls when comparing the values of these fields.
Introduced in Zim 5.4
The LogDefinitions system EntitySet was introduced in Zim 5.4. It is Zim file zim0087.
Its structure is described in section 1.6.1.
A new Zim 5.4 system variable is $SQLpath.
A new constant that is used as an argument to the SET commands is LogDefinitions.
Two new constants describing the color of 3D widgets on Windows 95 are C3DObjectColor and C3DObjectTextColor.
Introduced in Zim 5.5
Zim 5.5 introduced the following keywords: class, endclass, method, and endmethod.
Introduced in Zim 5.6 and Zim for Windows 2.0 (Aria Zim)
Zim 5.6 introduced the following new keywords:
Buffer_Size |
ColName |
ColType |
Column_Def |
Column_Name |
Column_Size |
Column_Type |
Data_Type |
DDEnts |
DDFlds |
Decimal_Digits |
Dir_Path |
EntDirPath |
EntFileNum |
EntName |
EntObjectType |
EntRecordSize |
File_Num |
FldDecimals |
FldDirType |
FldFieldName |
FldIndexSubFile |
FldIndexType |
FldLength |
FldOffset |
FldOwnerFileNum |
FldRTType |
FldVField |
Graphic |
Index_Type |
Is_Nullable |
Nullable |
Num_Input_Params |
Num_Output_Params |
Num_Rec_Radix |
Num_Result_Sets |
NumInputParams |
NumOutputParams |
NumResultSets |
Offset |
Ordinal_Position |
Owner_File_Num |
Precision |
|
Procedure_Cat |
Procedure_Name |
Procedure_Name |
Procedure_Schem |
Procedure_Schem |
Procedure_Type |
Radix |
Record_Size |
Remarks |
RemoteProcName |
RemoteProcedures |
ResultFields |
ResultName |
ResultSets |
ResultType |
Scale |
SetSN |
SQL_Data_Type |
SQL_DateTime_Sub |
SQL_Octet_Length |
StoredProcedures |
StProcColumns |
StProcName |
Table_Cat |
Table_Name |
Table_Schem |
Table_Type |
Type_Name |
TableColumns |
Tables |
Zsv_Type |
Zim for Windows 2.0 (also known as Aria Zim) introduced the following new keywords:
$pagesetup |
$RightClickMenu |
MousePointer |
Toolbar |