|Powered by QM on a Rpi server|
KnowledgeBase 00072: Compatibility and Migration
QM has a high degree of compatibility with other multivalue environments, however, because these vary so widely, QM has a number of options that can be used to select compatibility with a specific product.
The OPTION Command
The OPTION command controls the behaviour of command line tools and other non-program specific features. By default, QM follows the same general syntax and semantics as the 'Information style' products (Information, PI/open, Unidata and UniVerse in their default modes, etc). Many of the OPTION settings are about closer compatibility with the 'Pick style' environments such as D3 or mvBase. By providing individually selectable options rather than a limited number of high level settings, users can precisely tune the environment to have the features that they need. In most typical applications, the OPTION commands would be embedded in the LOGIN paragraph that runs when a user enters QM.
The $MODE Compiler Directive
The $MODE compiler directive serves a similar purpose within the QMBasic programming language. Again, the default is for Information style compatibility. Use of $MODE enables compiler features that give closer compatibility with Pick style environments. The $MODE directive affects only the current program (or even part of a program). To remove the need for $MODE directives in every program, QM supports a special record, $BASIC.OPTIONS, in the program file where it sets options for all programs in that file. Placing this record in the VOC file applies the settings to all programs compiled from files that do not contain their own $BASIC.OPTIONS record.
The VOC File
In common with all multivalue database products, QM uses a vocabulary file (the VOC, similar to the MD of some systems) to control command parsing and file references. Users can modify the VOC to give even closer compatibility by, for example, adding synonyms for commands or adding new commands that are not a standard part of QM. The ALIAS command can be used to assign an alias to a command. A common use of this is to make the COPY command run in its Pick style format by default instead of needing to use COPYP.
All of these compatibility options are on a per-account basis and hence systems running multiple unrelated applications can use different settings in each application.
For more details on these commands and other compatibility features, see the QM documentation set or the online help text. In particular, users migrating from other environments should read the 'Converting Applications to QM' manual.