Compatibility Switch Matrix
The runtime behaviour of a DataBasic program or subroutine is determined by a combination of two factors:
-
The compiler version embedded in the compiled code. This normally depends on the compiler used, but can be changed with the $OPTIONS statement.
-
The MultiValue compatibility mode (if any) set with $OPTIONS statement.
These runtime settings are listed below
Note
The BCM utility alters the DataBasic runtime operations. This may cause existing applications to fail. Affected programs should be re-tested after changes. BCM should be used only under the guidance of NEC Software Solutions personnel.
If set, causes user exit U50BB to behave as appropriate for the selected MultiValue compatibility mode (if any) set with the $OPTIONS statement.
Operation: See User Exit Conversions.
Introduced on: Reality V14.2.
Enable vendor mapping of @(-n).
Operation: See @ function (MultiValue).
Introduced on: Reality V9.1.
Special handling of ACCESS.
Operation: If set specifies that the ACCESS data-element is decoded via the relevant MultiValue table.
Introduced on: Reality V10.
Allow commas to be used as line continuation characters.
Note
If line continuation is required immediately following a comma that is required by the syntax, two commas or a comma and an ellipsis must be used.
Operation: As on D3, mvEnterprise and UniVerse.
Introduced on: Reality V14.2.
Removed on: Reality V15.2.
Allow DCOUNT to use a substring.
Operation: The DCOUNT function operates as on mvEnterprise.
Introduced on: Reality V14.0.
Allow IN to echo printable characters.
Operation: The IN statement operates as on mvEnterprise.
Introduced on: Reality V14.0.
Allow extended format of MATCH/MATCHES pattern matching.
Operation: The MATCH{ES} function operates as on mvEnterprise.
Introduced on: Reality V15.2.
Position/Limit key literals are in external format.
Operation: Determines how indexes that were created from dictionary definitions that include output conversions are handled by the DataBasic POSITION and LIMIT.INDEX statements. Clear for compatibility with earlier versions of Reality.
Introduced on: Reality V14.1.
Special handling of descale value in Format mask.
Operation: Controls the outcome of combining precision and scaling in a format string.
Introduced on: Reality V9.1.
PERFORM to work with a GLOBAL active list.
Operation: Determines whether the default SELECT list is local or global.
Introduced on: Reality V9.1.
Allow Multiple Pattern Separators.
Operation: Pattern matching functions as on mvEnterprise.
Introduced on: Reality V14.0.
Skip PRECISION -> SCALE if not specified in ML or MR format.
Operation: If set do not use the specified precision as the scaling factor if scale value is omitted.
Introduced on: Reality V14.1.
These options together determine how errors are returned by the SETTING/RETURNING clause of an EXECUTE statement.
Operation: If MV.SETTING is set but MV.FILTER is not, the EXECUTE statement operates as on D3; that is, only the error numbers are returned, separated by spaces.
If MV.SETTING and MV.FILTER are both set, the EXECUTE statement operates as on mvEnterprise; that is, both error numbers and parameters returned, separated by attribute marks.
If MV.SETTING is not set, MV.FILTER has no effect (Reality returns errors separated by attribute marks, with each error number and parameter separated by value marks).
Introduced on: Reality V15.2.
Note
These options effectively replace the D3.SETTING option.
mvBase or mvEnterprise OPENSEQ mode.
Operation: If set OPENSEQ and DELETESEQ operates as on mvEnterprise.
Introduced on: Reality V11.
Allow OPEN and READ statements to compile without THEN/ELSE.
Operation: Determines whether THEN/ELSE clauses are required in OPEN, READ, READU, READV, READVU, MATREAD and MATREADU statements.
When set, if the statement fails, the result (returned in the appropriate parameter) is null.
Introduced on: Reality V14.1.
Exclude new DataBasic intrinsic functions when compiling.
Operation: Intrinsic functions that are new in the current version of the DataBasic compiler are not compiled; this avoids problems caused by existing arrays having the same names as these functions.
Note that this is only a temporary solution, since in the next version of the compiler the functions will no longer be new. The recommended solution is to rename the arrays concerned.
Introduced on: Reality V14.2.
Set if no upscaling of precision in FORMAT.
Operation: Determines the outcome of combining precision and scaling in a format string.
Introduced on: Reality V14.0.
Format to operate on 1st field only.
Operation: If set only apply the {M}L or {M}R format to the first field of a multivalued string.
Introduced on: Reality V14.1.
If set REM()/MOD() = remainder else modulo.
Operation: Determines how the MOD and REM functions behave when used with negative numbers.
Introduced on: Reality V14.0.
Return one instead of zero at end of string.
Operation: REMOVE operates as on mvEnterprise.
Introduced on: Reality V14.1.
Use mvE right alignment mechanism.
Operation: Controls the behaviour of the LOCATE statement.
Introduced on: Reality V14.0.
Convert SELECT to a SELECTE if list pending.
Operation: SELECT operates as on mvEnterprise and D3.
Introduced on: Reality V10.
Map SYSTEM via vendor map.
Operation: Decode SYSTEM function as on MultiValue equivalent. Requires SYS to be enabled.
Introduced on: Reality V14.1.
Allow zero to be returned in SUM.
Operation: Determines the SUM function's return value when passed an empty dynamic array.
Introduced on: Reality V14.0.
Treat strings containing only arithmetic unary operators and decimal points as numeric.
Operation: Treat the strings "+", "-", ".", "+." and "-." as numeric.
Introduced on: Reality V14.2.
Map SYSTEM through Reality map.
Operation: Used with SMAP. Controls SYSTEM function operation.
Introduced on: Reality V9.1.
Convert TRIM 'M' to TRIM 'R'.
Operation: Controls the behaviour of the DataBasic TRIM function with type equals "R".
Introduced on: Reality V14.1.
AND, OR to only return 1 or 0 as result.
Operation: Controls how arithmetic expressions are evaluated when used in logical expressions, and how complex logical expressions are evaluated.
Introduced on: Reality V14.1.
Allow Non-null Non-numeric String to be seen as TRUE.
Operation: Determines whether non-numeric strings can be used in logical expressions.
Introduced on: Reality V14.0.
Set if COUNT/DCOUNT matches characters only.
Operation: Controls whether the COUNT, COUNTS, DCOUNT and INDEX functions match only non-overlapping strings.
Introduced on: Reality V14.2.