Compatibility Issues

Backwards Compatibility

Zim 8 is designed to be backward-compatible with previous versions. However, it may be necessary to modify object names in an existing Zim 7.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 Development Center, the Screen Painter or 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.

You may also skip directly to any section relevant to a specific version of Zim:

 

Introduced in Zim 4.x

Introduced in Zim 5.1

Introduced in Zim 5.2

Introduced in Zim 5.4

Introduced in Zim 5.5

Introduced in Zim 5.6 and Zim for Windows 2.0 (Aria Zim)

 

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

Verb