OpenQM
Introduction to the QM Database
What is a Multivalue Database?
Installation
Startup and Shutdown of QM
Deinstallation
Accounts
Entering QM
The Login Process
Command Scripts
The Command Environment
The Command Stack
The Command Editor
Interrupting Commands
Output Pagination
The VOC File
VOC D-type records - Data items
VOC F-type records - File definitions
VOC K-type records - Keywords
VOC M-type records - Menu definitions
VOC PA-type records - Paragraphs
VOC PH-type records - Phrases
VOC PQ-type records - PROCs
VOC Q-type records - Remote file pointers
VOC R-type records - Remote pointers
VOC S-type records - Sentences
VOC V-type records - Verbs
VOC X-type records - Miscellaneous storage
Security subroutines
Inline Prompts
Pattern Matching
Printing
Dates, Times and Epoch Values
Error Handling
The QM File System
Creating and Deleting Files
Directory Files
Dynamic Files
Distributed FIles
QMNet Network File Access
The Virtual File System
Creating and Modifying Data
Dictionaries
Dictionary A and S-type records
Correlatives
A-Correlatives
F-Correlatives
Dictionary C-type records
Dictionary D-type records
Dictionary I-type records
Dictionary L-type records
Dictionary PH-type records
Dictionary X-type records
Associations
I-type expressions
Conversion Codes
A-correlative conversion (A)
Base 64 Conversion (B64)
Boolean conversion (B)
Concatenation conversion (C)
Date conversion (D)
Epoch conversion (E)
F-correlative conversion (F)
Group conversion (G)
Integer conversion (IS, IL)
Length conversion (L)
Character conversion (MCx)
Masked decimal conversion (MD, ML, MR)
Time conversion (MT)
Radix conversion (MB, MO, MX)
Radix conversion (MCDX, MCXD)
Field extraction (<f,v,s>)
Pattern matching conversion (P)
Range check conversion (R)
Substitution conversion (S)
File translation conversion
Text substring conversion
User defined conversions
Format Specifications
Locks
Alternate Key Indices
Triggers
Data Encryption
Transactions
Select Lists
QM Commands
* (Comment)
$ECHO
ABORT
ACCOUNT.RESTORE
ACCOUNT.SAVE
ADD.DF
ADMIN.USER
ALIAS
ANALYSE.FILE
AUTHENTICATE
AUTOLOGOUT
BASIC
BELL
BLOCK.PRINT and BLOCK.TERM
BREAK
BUILD.INDEX
CATALOGUE
CLEAN.ACCOUNT
CLEAR.ABORT
CLEAR.DATA
CLEAR.FILE
CLEAR.INPUT
CLEAR.LOCKS
CLEAR.PROMPTS
CLEAR.SELECT
CLEAR.STACK
CLR
CNAME
COMO
COMPILE.DICT
CONFIG
CONFIGURE.FILE
COPY
COPY.LIST
COPY.LISTP
COPYP
CREATE.ACCOUNT
CREATE.FILE
CREATE.INDEX
CREATE.KEY
CREATE.USER
CT
DATA
DATE
DATE.FORMAT
DEBUG
DELETE
DELETE.ACCOUNT
DELETE.CATALOGUE
DELETE.COMMON
DELETE.FILE
DELETE.INDEX
DELETE.KEY
DELETE.LIST
DELETE.SERVER
DELETE.USER
DISABLE.INDEX
DISPLAY
DUMP
ECHO
ED
EDIT.LIST
ENCRYPT.FILE
FILE.SAVE
FILE.STAT
FIND.ACCOUNT
FIND.PROGRAM
FORMAT
FORM.LIST
FSTAT
GENERATE
GET.LIST
GET.STACK
GO
GRANT.KEY
HELP
HSM
HUSH
IF
INHIBIT.LOGIN
LIST.COMMON
LIST.DF
LIST.DIFF
LIST.FILES
LIST.INDEX
LIST.INTER
LIST.KEYS
LIST.LOCKS
LIST.PHANTOMS
LIST.READU
LIST.SERVERS
LIST.TRIGGERS
LIST.UNION
LIST.USERS
LIST.VARS
LISTDICT
LISTF
LISTFL
LISTFR
LISTK
LISTM
LISTPA
LISTPH
LISTPQ
LISTQ
LISTR
LISTS
LISTU
LISTV
LOCK
LOGIN.PORT
LOGMSG
LOGOUT
LOGTO
LOOP / REPEAT
MAKE.INDEX
MAP
MED
MERGE.LIST
MESSAGE
MODIFY
NETWAIT
NLS
NSELECT
OPTION
PASSWORD
PAUSE
PDEBUG
PDUMP
PHANTOM
PRINTER
PSTAT
PTERM
QSELECT
QUIT
REBUILD.ALL.INDICES
RELEASE
REMOVE.DF
REPORT.SRC
REPORT.STYLE
RESET.MASTER.KEY
RESTORE.ACCOUNTS
REVOKE.KEY
RUN
SAVE.LIST
SAVE.STACK
SCRB
SECURITY
SED
SED - Records, buffers and windows
SED - Standard key bindings
SED - Standard key bindings quick reference
SED - Cursor movement and search functions
SED - Data insertion
SED - Copying, deleting and restoring data
SED - Working with multivalued data
SED - Functions that operate of a block of data
SED - Changing text
SED - Macros
SED - File handling
SED - Repeating functions
SED - Miscellaneous functions
SED - Commands
SED - Setting up default modes
SED - Source control
SED - Dynamic key bindings
SED - Extension Programming
SED Extensions - Variables, constants and functions
SED Extensions - Standard variables and functions
SED Extensions - Argument Passing
SED Extensions - An example of a complex extension
SED Extensions - Local procedures and functions
SEL.RESTORE
SELECTINDEX
SET
SET.DEVICE
SET.ENCRYPTION.KEY.NAME
SET.EXIT.STATUS
SET.FILE
SET.QUEUE
SET.SERVER, SET.PRIVATE.SERVER
SET.TRIGGER
SETPORT
SETPTR
SH
SLEEP
SP.ASSIGN
SP.OPEN, SP.CLOSE
SP.VIEW
SPOOL
STATUS
STOP
T.DUMP
T.LOAD
T.DET, T.EOD, T.FWD, T.RDLBL, T.READ, T.REW, T.STAT, T.WEOF
TERM
TIME
UMASK
UNLOCK
UNLOCK.KEY.VAULT
UPDATE.ACCOUNT
UPDATE.LICENCE
UPDATE.RECORD
UPDATE.RECORD batch mode
UPDATE.RECORD visual mode
WHO
WHERE
Query Processing
The Selection Clause
The Sort Clause
The Display Clause
SELECT and SSELECT
SEARCH
LIST and SORT
LIST.ITEM and SORT.ITEM
LIST.LABEL and SORT.LABEL
REFORMAT and SREFORMAT
COUNT
SUM
SHOW
Query processor keywords
ABSENT.IGNORE
ABSENT.NULL
ALL.MATCH
AND
AS
ASSOC
ASSOC.WITH
AVERAGE
BETWEEN
BOXED
BREAK.ON
BREAK.SUP
BY
BY.DSND
BY.EXP
BY.EXP.DSND
CALC
COL.HDG
COL.HDG.ID
COL.HDR.SUPP
COL.SPACES
CONV
COUNT.SUP
COL.SUP
CSV
CUMULATIVE
DBL.SPC
DELIMITER
DET.SUP
DISPLAY.LIKE
ENUMERATE
EQ
EVAL
FMT
FOOTING
FORCE
FROM
GE
GRAND.TOTAL
GT
HDR.SUP
HEADING
ID.ONLY
ID.SUP
IN
LABEL
LE
LIKE
LOCKING
LPTR
LT
MARGIN
MAX
MIN
MULTI.VALUE
NE
NEW.PAGE
NO
NO.CASE
NO.GRAND.TOTAL
NO.INDEX
NO.MATCH
NO.NULLS
NO.PAGE
NO.SPLIT
NOT.IN
OR
OVERLAY
PAGESEQ
PAN
PERCENTAGE
REQUIRE.INDEX
REQUIRE.SELECT
REPEATING
SAID
SAMPLE
SAMPLED
SAVING { UNIQUE}
SCROLL
SINGLE.VALUE
STRINGS
STYLE
TO (Selection verbs)
TO (REFORMAT)
TOTAL
UNLIKE
USING
VERTICALLY
WHEN
WITH
WITHOUT
QMBasic
QMBasic overview
QMBasic - Variable names and values
QMBasic - Scalars, matrices and dynamic arrays
QMBasic - Common blocks
QMBasic - Labels
QMBasic - Expressions and operators
QMBasic - Assignment statements
QMBasic - Type conversion
File Processing
Matrix File I/O
Sequential File I/O
Default File Variable
Multivalue Functions
Object Oriented Programming
Using Socket Connections
QMBasic - Compiler Directives
$CATALOGUE compiler directive
$DEBUG compiler directive
$DEFINE compiler directive
$EXECUTE compiler directive
$IFDEF and $IFNDEF compiler directives
$INCLUDE compiler directive
$LIST compiler directive
$MODE compiler directive
$NO.CATALOGUE compiler directive
$NO.XREF
$NOCASE.STRINGS compiler directive
$PAGE Compiler Directive
$QMCALL compiler directive
$STOP Compiler Directive
QMBasic Limits
QMBasic Statements and Functions by Type
QMBasic Statements and Functions by Name
@(x,y) Function
ABORT
ABS()
ACCEPT.SOCKET.CONNECTION()
ACOS()
ALPHA()
ANDS()
ARG ()
ARG.COUNT()
ARG.PRESENT()
ASCII()
ASIN()
ASSIGNED()
ATAN()
BEGIN TRANSACTION
BINDKEY()
BITAND()
BITNOT()
BITOR()
BITRESET()
BITSET()
BITTEST()
BITXOR()
BREAK
CALL, ENTER
CASE
CATALOGUED()
CATS()
CHAIN
CHANGE()
CHAR()
CHECKSUM()
CHILD()
CLASS
CLEAR
CLEARCOMMON
CLEARDATA
CLEARFILE
CLEARINPUT
CLEARSELECT
CLOSE
CLOSE.SOCKET
CLOSESEQ
COL1()
COL2()
COMMON
COMPARE(), COMPARES()
CONFIG()
CONNECT.PORT()
CONTINUE
CONVERT
COS()
COUNT()
CREATE
CREATE.FILE
CREATE.SERVER.SOCKET
CROP()
CSVDQ()
DATA
DATE()
DCOUNT()
DEBUG
DECRYPT()
DEFFUN
DEL
DELETE
DELETELIST
DELETESEQ
DFPART()
DIMENSION
DISINHERIT
DISPLAY
DIR()
DIV()
DOWNCASE()
DPARSE and DPARSE.CSV
DTX()
EBCDIC()
ECHO
ENCRYPT()
END
ENV()
EPOCH()
EQS()
EQUATE
ERRMSG
EXECUTE
EXIT
EXP()
EXTRACT()
FCONTROL()
FIELD()
FIELDSTORE()
FILE
FILE.EVENT
FILEINFO()
FILELOCK
FILEUNLOCK
FIND
FINDSTR
FLUSH
FLUSH.DH.CACHE
FMT()
FOLD() and FOLDS()
FOOTING
FOR / NEXT
FORMLIST, FORMLISTV
FUNCTION
GES()
GET(ARG.)
GET.MESSAGES()
GET.PORT.PARAMS()
GETLIST
GETNLS()
GETPU()
GETREM()
GOSUB
GOTO
GTS()
HEADING
HUSH
ICONV()
IDIV()
IF /THEN / ELSE
IFS()
IN
INDEX()
INDICES()
INHERIT
INMAT()
INPUT
INPUT @
INPUTCSV
INPUTFIELD
INS
INT()
ITYPE()
KEYCODE()
KEYEDIT
KEYEXIT
KEYIN()
KEYREADY()
KEYTRAP
LEN()
LES()
LISTINDEX()
LN()
LOCAL
LOCATE
LOCK
LOGMSG
LOOP / REPEAT
LOWER()
LTS()
MARK.MAPPING
MAT
MATBUILD
MATCHESS
MATCHFIELD
MATPARSE
MATREAD
MATREADCSV
MATWRITE
MAX()
MAXIMUM()
MD5()
MIN()
MINIMUM()
MOD()
MVDATE()
MVDATE.TIME()
MVEPOCH()
MVTIME()
NAP
NEG()
NES()
NOBUF
NOT()
NULL
NUM()
OBJECT()
OBJINFO()
OCONV()
ON GOSUB
ON GOTO
OPEN
OPENPATH
OPENSEQ
OPEN.SOCKET()
ORS()
OS.ERROR()
OS.EXECUTE
OSDELETE
OSREAD
OSWRITE
OUTERJOIN()
PAGE
PAUSE
PRECISION
PRINT
PRINTCSV
PRINTER
PRINTER CLOSE
PRINTER DISPLAY
PRINTER FILE
PRINTER NAME
PRINTER RESET
PRINTER SETTING
PRINTER.SETTING()
PRINTERR
PRIVATE
PROCREAD
PROCWRITE
PROGRAM
PROMPT
PUBLIC
PWR()
QUOTE()
RAISE()
RANDOMIZE
RDIV()
READ
READ.SOCKET()
READBLK
READCSV
READL
READLIST
READNEXT
READSEQ
READU
READV
READVL
RECORDLOCKED()
RECORDLOCKL, RECORDLOCKU
RELEASE
REM()
REMARK
REMOVE
REMOVE.BREAK.HANDLER
REMOVEF()
REPLACE()
RESTORE.SCREEN
RETURN
REUSE()
RND()
ROUNDDOWN(), ROUNDUP()
SAVE.SCREEN()
SAVELIST
SEEK
SELECT, SELECTN, SELECTV
SELECTE
SELECTINDEX
SELECTINFO()
SELECTLEFT and SELECTRIGHT
SENTENCE()
SEQ()
SERVER.ADDR()
SET.ARG
SET.BREAK.HANDLER
SET.EXIT.STATUS
SETLEFT and SETRIGHT
SET.PORT.PARAMS()
SET.SOCKET.MODE()
SET.TIMEZONE
SETNLS
SETPU
SETREM
SHIFT()
SIN()
SLEEP
SOCKET.INFO()
SOUNDEX()
SPACE()
SPLICE()
SQRT()
SQUOTE()
SSELECT
STATUS()
STATUS
STOP
STR()
SUBR()
SUBROUTINE
SUBSTITUTE()
SUBSTRINGS()
SUM()
SUMMATION()
SWAPCASE()
SYSTEM()
TAN()
TCLREAD
TERMINFO()
TESTLOCK()
TIME()
TIMEDATE()
TIMEOUT
TOTAL()
TRANS(), RTRANS(), XLATE()
TRANSACTION ABORT, TRANSACTION COMMIT, TRANSACTION START
TRIM()
TRIMB()
TRIMF()
TRIMS()
TTYGET()
TTYSET
UNASSIGNED()
UNLOCK
UNTIL
UPCASE()
VOCPATH()
VOID
VSLICE()
WAIT.FILE.EVENT
WAKE
WEOFSEQ
WHILE
WRITE
WRITE.SOCKET()
WRITEBLK
WRITECSV
WRITESEQ
WRITEV
XTD()
Character Values for Terminal Input
@-Variables
Standard Subroutines
!ABSPATH()
!ATVAR()
!ERRTEXT()
!GETPU()
!LISTU()
!PARSER()
!PATHTKN()
!PCL()
!PHLOG()
!PICK()
!PICKLIST()
!QMCLIENT
!SCREEN()
!SETPU()
!SETVAR()
!SORT()
!USERNAME()
!USERNO()
!VOCREC()
QMBasic Debugger
Process Dump Files
Error Numbers
Building a Self-Installing Application
Building a Web Server Application
QMClient API
Select lists in QMClient sessions
Security Issues of the QMClient API
QMCall
QMChange()
QMClearselect
QMClose
QMConnect()
QMConnected()
QMConnectionType
QMConnectLocal()
QMDcount()
QMDel()
QMDelete()
QMDeleteu()
QMDisconnect
QMDisconnectAll
QMEndCommand
QMError()
QMExecute()
QMExtract()
QMField()
QMFree()
QMGetSession()
QMIns()
QMLocate()
QMLogto()
QMMarkMapping
QMMatch()
QMMatchfield()
QMNextPartial()
QMOpen()
QMRead()
QMReadl()
QMReadList()
QMReadNext()
QMReadu()
QMRecordlock
QMRelease
QMReplace()
QMRespond()
QMRevision()
QMSelect()
QMSelectIndex
QMSelectLeft and QMSelectRight
QMSelectPartial()
QMSetLeft and QMSetRight
QMSetSession()
QMStatus()
QMTrapCallAbort
QMWrite
QMWriteu
System Administration
Configuration Parameters
The Terminfo Database
The qmtic Utility
Windows Code Pages
Application Level Security
Permissions
Backup and Restore
Monitoring the System
Multi-Language Applications
Error Logging
QM Command Options
The qmfix Utility
The qmidx Utility
The qmconv Utility
System Limits
Glossary of Terms

Copyright Ladybridge Systems, 2010