.nf.tp6 ^&Initialising_ the_ Database\& .lm+4.ts9,11,23 CALL RMOPEN (dbname) Input parameter: dbname ---- the name of the data base in Hollerith format .s CALL RMCLOS .s.i-4.tp6 ^&General_ Routines\& CALL RMUSER (password) Input parameters: password -- the password text .s.tp4 CALL RMRULE (switch) Input parameter: switch ---- 0 -- no rule checking (NOCHECK) 1 -- check rules (CHECK) (int) .s.tp5 CALL RMTOL (value,switch) Input parameters: value ----- the value of the tolerance (real) switch ---- 0 -- val is tolerance value 1 -- val is tolerance percent (int) .s.tp3 CALL RMDATE (string) Output parameter: string ---- current date in form yy/mm/dd (8H) .s.tp3 CALL RMTIME (string) Output parameter: string ---- current time in form hh.mm.ss (8H) .s.i-4.tp13 ^&Accessing_ the_ Schema\& CALL RMLREL .s CALL RMGREL(rname,rpw,mpw,lastmod,numatt,numrows) Output parameters: rname ----- relation name (text) rpw ------- read password, .TRUE. or .FALSE. mpw ------- modify password, .TRUE. or .FALSE. lastmod --- date of last modification in relation data, in yy/mm/dd format (8H) numatt ---- number of attributes in relation (int) numrows --- number rows of data in relation (int) .s.tp3 CALL RMLATT(rname) Input parameter: rname ----- relation name in Hollerith (text) format .s.tp13 CALL RMGATT(aname,type,matvec,var,len1,len2,column,key) Output parameters: aname ----- attribute name type ------ attribute type (INT, REAL, DOUB, or TEXT) matvec ---- attribute type (VEC or MAT, else blank) var ------- variable length attribute, .TRUE. or .FALSE. len1 ------ attribute length data as follows (int): TEXT -- number of characters INT, REAL, DOUB, VEC -- number of items MAT -- row dimension len2 ------ column dimension of MAT attributes, otherwise 0 (int) column ---- attribute column location in relation (int) key ------- keyed attribute (.TRUE. or .FALSE.) .s.i-4.tp8 ^&Accessing_ the_ Database\& CALL RMFIND(number,relname) Input parameters: number ---- user assigned number (0-5) used to reference the pointer for the relation (int) relname --- relation name (characters, H format) .s.tp12 CALL RMWHER(number,attname,operator,value,numval,nextboo,numboo) Input parameters: number ---- number (0-5) which identifies the relation pointer for this operation (int) attname --- array of attribute names, attribute numbers, the keyword ROWS, or LIMIT operator -- array of operators (EQ, GT, EQS, EQA, etc.) value ----- 2-dimensional array of WHERE clause "values" numval ---- number of "values" in list of values nextboo --- array of "AND" "OR" operators numboo ---- number of WHERE conditions (int) .s.tp8 CALL RMSORT(number,attname,numsort,sortype) Input parameters: number ---- number (0-5) which identifies the relation pointer for this operation (int) attname --- array of "numsort" attribute names to sort on numsort --- number of attributes to sort on (int) sortype --- sort control numbers: -1 = descending sort, +1 = ascending sort .s.tp6 CALL RMGET(number,array) Input parameter: number ---- number (0-5) which identifies the relation pointer for this operation (int) Output parameter: array ----- array to receive the row of data .s.tp5 CALL RMLOAD(number,array) Input parameters: number ---- number (0-5) which identifies the relation pointer for this operation (int) array ----- array containing the row of data to load .s.tp6 CALL RMPUT(number,array) Input parameters: number ---- number (0-5) which identifies the relation pointer for this operation (int) array ----- array containing the modified row of data .s.tp4 CALL RMDEL (number) Input parameter: number ---- number (0-5) which identifies the relation pointer to be deleted (int) .S.I-4.TP3 ^&Linking_ an_ Application_ Program\& .IF SIRA $ LINK program,SYS$LIBRARY:RIM__SHARE/OPTIONS ! shared library .i-3;or#$ LINK program,SYS$LIBRARY:RIMLIB/LIBRARY ! local library .ELSE SIRA $ LINK program,LIB__USER:RIMLIB/LIBRARY .ENDIF SIRA .lm0.f