|
Host/API | General Subroutine Information |
HOST
consists of a set of FORTRAN
callable functions written in
ANSI
standard FORTRAN
. The user writes a main program to call the
HOST
routines which perform the requested retrieval functions. These
routines are compiled by the standard FORTRAN
compiler for each machine on
which SIR/DBMS
is available and are maintained as a standard library of
FORTRAN
routines on each machine.See additional documentation and examples in the API subdirectory of the SIR installation directory.
There may be two HOST
libraries available at your site. One of them,
referred to as HOST
or regular HOST
, is intended for a single user
environment. The other one, referred to as concurrent HOST
, is intended to work in a
multiple-user environment, in conjunction with the MASTER
module. The user interface with
these two versions is almost identical, such that almost no programming effort is required
to switch between them. The small differences are documented below in
Multiple User Support with HOST
.
The HOST
routines can be called by a main program written in a language other
than FORTRAN
(such as PL/1
or C
), provided that FORTRAN
functions can be called from that language.
If the language can call FORTRAN
functions, but cannot test their return
values, the user can use a common area called HERROR
to get this value. The first variable
of the HERROR
common block is a R*8
containing the name of the last HOST
function called (except for ZCALL
which does not touch the variable). Note that this
variable does not have the CHARACTER*8
FORTRAN
type. The next variable of the HERROR
common
block is an I*4
which will contain the return code from the last called HOST
function. The next variable is an I*4
which is reserved for future use. The length
of the HERROR
common area is the length of a R*8
plus the length of two I*4
's.
The routines provided allow the HOST
user to perform all the operations
available in DBMS
retrieval. Some DBMS
commands are provided in
a single HOST
function call while others have been divided into several
function calls.
Every HOST
routine is a FORTRAN
function which returns a value
to the calling application program. If a function executes its task successfully, then it
will return a requested value or the value zero or a positive status value to the calling
program. If a function encounters an error or problem in performing its task, however, it
will return a negative number and not perform the task. The absolute value of the
returned value will be the error code detected. A list of all current error codes are
listed in Environment appendix A. Some of the negative returned codes do not represent real errors,
but some specific conditions such as "no more records found" or "a missing value has been
stored".
HOST
programmer should have
experience in writing DBMS
Retrieval programs. We recommend that new
HOST
users write their retrievals in the DBMS
Retrieval language
and then translate them into HOST
function calls. Once the user gains
proficiency with HOST, this technique can be dispensed with.
As illustrated by the examples, a HOST
program generally has
many more statements than its DBMS
counterpart. This is partly because each
DBMS
Retrieval command usually translates into several HOST
function calls. HOST
programs are also include statements that check the
error codes returned by the HOST
functions. It is very important to check
the HOST
error codes. If errors are ignored, the results of subsequent
function calls will be unpredictable. If this occurs during a database modification run,
the database could be damaged.
To help the programmer write code that performs all of the required returned values
testing, a new function, ZCALL
, has been introduced.
ZCALL
helps the programmer write
programs that are easy to understand and maintain.
HOST
system is initialised by calling ZSTART
. It must be the first
HOST
call in the user's program. If concurrent HOST
is used,
ZLOGIN
should be called immediately after
ZSTART
.
One or more calls that open the databases to be used during the run follow. There can be
more than one of these calls because, unlike DBMS
, HOST
allows simultaneous
access to more than one database. The HOST
routines that open databases are
ZORDB
(open a random database), and
ZOSDB
(open a sequential database).
These calls also allow the user to specify default read and write security passwords for
each database. The defaults can be overridden by calling ZSECUR
.
HOST
retrieval stack is an internal table containing one entry for each CIR
and data record currently being processed. The entries are called blocks. The ordinal of
a block in the retrieval stack is referred to as the level of the block. Each block is
completely nested within the preceding blocks similar to the nesting in a
DBMS
retrieval program. In HOST
, nesting is extended to include the nesting
of databases as well as cases and records.
For example, consider the following schematic DBMS
Retrieval with four levels
of nesting:
RETRIEVAL . PROCESS CASES .... . PROCESS REC 7.... . CASE IS.... . RECORD IS 9 .... . END RECORD IS . END CASE IS . END PROCESS REC . END PROCESS CASES END RETRIEVALWithin the first level of nesting (
PROCESS CASES
block), the corresponding
HOST
retrieval stack would consist of
level 1 - CIRWithin the fourth level of nesting (
RECORD IS
block), the HOST
retrieval
stack would contain
level 1 - CIR level 2 - record type 7 level 3 - CIR level 4 - record type 9Within a
DBMS
Retrieval block, the user can only refer to CIR variables or
record variables that belong to the block. HOST
, on the other hand, allows the user's
program to access data at any level from any higher level in the retrieval stack. In the
previous example, the user can refer to the CIR variables of level 1 from within levels 2,
3 or 4. Similarly one can refer to record type 7 variables from within levels 3 or 4. This
is made possible by the retrieval stack and by the variable descriptors discussed in the
next section.
Although the retrieval stack allows the user full access to all preceding levels, there
are some operations that can only be performed on a level-by-level basis with HOST
. Among
these operations are record deletion, getting the next record and termination of record
processing. For example, in order to terminate the CASE IS
block (level 3 in the previous
example) from within the RECORD IS
block (level 4), the user must first terminate the
RECORD IS
block and then the CASE IS
block.
In version 2.2, the routines that create blocks ( ZCCNT
,
ZCCNTD
,
ZCGDMY
,
ZCIS
,
ZCISD
,
ZCSAM
,
ZCSAMD
,
ZRCNT
,
ZRCNTD
,
ZRCNTL
,
ZRGDMD
,
ZRGDML
,
ZRGDMY
,
ZRIS
,
ZRISD
,
ZRISL
,
ZRSAM
,
ZRSAMD
and ZRSAML
) return the
stack level of the created block rather than 0 (as they did
in previous releases). The level can be used as the fourth piece of a variable
descriptor. The level of a case block can also be used as the last argument of
ZRCNTL
,
ZRGDML
,
ZRISL
and
ZRSAML
to make a "record block" belong to a "case block" other
than the closest above it. For example, the following structure is possible now:
level 1 - CIR
level 2 - CIR
level 3 - record type 5 "belonging" to the CIR on level 1
level 4 - record type 2 "belonging" to the CIR on level 2
HOST
, database variables are accessed by variable descriptor rather than by name. The
purpose of the descriptor is to identify uniquely a variable across all levels of the
retrieval stack.A variable descriptor contains four pieces of identifying information about a variable:
HOST
in order of opening)
LIST SCHEMA
)
Note: The value of the database number should be left undefined. Opening and closing databases could cause a different sequence of values to be assigned.
Variable descriptors are created in HOST
by the routines, ZDESC
,
ZDESCD
,
ZDESCM
and
ZSDESC
.
Routine ZDESCB
breaks a descriptor in its 4 components.
ZDESCD
requires an explicit database name while ZDESC
assumes the database is the one currently
in use.
The recommended programming technique is to call ZDESCD
at the beginning of the program
for each variable to be referenced.
To illustrate, suppose we plan to retrieve data from two databases, CLIENT
and PROSPECT
.
We want to retrieve the variables NAME
, PHONE
, and BILLED
from record type 1 in the CLIENT
database. We also want to retrieve NAME
and PHONE
from the CIR and SALESREP
and CLDATE
from record type 3 in the PROSPECT
database.
The calls to ZDESCD
would be placed at the beginning of the HOST
program and
would look like this in FORTRAN
:
IERR = ZDESCD (CNAME, 'CLIENT' , 1,'NAME ' , 0) IERR = ZDESCD (CPHONE, 'CLIENT' , 1,'PHONE' , 0) IERR = ZDESCD (CBILLD, 'CLIENT' , 1,'BILLED' , 0) IERR = ZDESCD (PNAME, 'PROSPECT', 0,'NAME' , 0) IERR = ZDESCD (PPHONE, 'PROSPECT', 0,'PHONE' , 0) IERR = ZDESCD (PSLSRP, 'PROSPECT', 3,'SALESREP', 0) IERR = ZDESCD (PDATE, 'PROSPECT', 3,'CLDATE' , 0)The
FORTRAN
variables CNAME
, CPHONE
, CBILLD
, etc. contain the variable
descriptors for the corresponding database variables NAME
, PHONE
, BILLED
, etc. Once the
descriptors are defined, they are used in all subsequent HOST
calls. For
example, to retrieve the value of the CIR variable NAME
in the PROSPECT
database, the
appropriate HOST
call would be
IERR = ZRCTST (PNAME, PRONAM, 25)
ZRCTST
transfers 25 characters of the CIR variable NAME
(whose descriptor is stored in
PNAME
) into the FORTRAN
character variable PRONAM
.
HOST
so that cases can be
processed with the AFTER
, FROM
, THRU
, UNTIL
, and WITH
clauses and records can be processed
with the COUNT
and SAMPLE
options.
Case and record processing in HOST
involves several steps:
ZCNEXT
or
ZRNEXT
as the first statement of the case or record-processing loop.
These routines get a case or record from the database and make it available for use.
ZCNEXT
or
ZRNEXT
. These routines return a negative error code (-4xxx) when there are no more cases
or records left.
ZCEXIT
or
ZREXIT
when the loop is terminated.
DBMS
Retrieval
commands:
. PROCESS CASES ALL . WRITE CASEID NAME ADDRESS . END PROCESS CASESThe corresponding
HOST
program would look like this in FORTRAN
:
IERR = ZCCNT (-1, 1, 1) 100 IERR = ZCNEXT (0) IF (IERR .EQ. -4001 .OR. IERR .EQ. -4002) GO TO 200 .... (retrieve and print CASEID, NAME and ADDRESS) GO TO 100 200 IERR = ZCEXIT (DUM)Errors -4001 and -4002 indicate that there are no more cases left to be processed.
Now suppose we want to run the same retrieval, but only for those cases whose case-ids lie
in the range 5000 to 5999. We must add calls to the HOST
routines that
create and define the key values for the cases. The HOST
program would then
be written as follows:
IERR = ZCCNT (-1, 1, 1) IERR = ZFROM (0) IERR = ZINTKY (5000) IERR = ZTHRU (0) IERR = ZINTKY (5999) 100 IERR = ZCNEXT (0) IF (IERR .EQ. -4001 .OR. IERR .EQ. -4002) GO TO 200 ..... (retrieve and print CASEID, NAME and ADDRESS) GO TO 100 200 IERR = ZCEXIT (0)Note that the key creation (
ZFROM
,
ZTHRU
) and key definition
(ZINTKY
) routines are placed
immediately after the initialisation routine (
ZCCNT
) and before the actual start of the
loop (ZCNEXT
).
Record processing in HOST
is analogous to case-processing.
For example, the following PROCESS REC
loop:
. PROCESS REC 3, WITH (1982, 100) . WRITE 'DEPT YTD TOTAL IS', YTDSALE . END PROCESS RECmight look like this in
FORTRAN
:
IERR = ZRCNT (3, -1, 1, 1) IERR = ZWITH (0) IERR = ZINTKY (1982) IERR = ZINTKY (100) 100 IERR = ZRNEXT (0) IF (IERR .EQ. -4001 .OR. IERR.EQ. -4002) GO TO 200 ..... (retrieve and print value of YTDSALE) GO TO 100 200 CALL ZREXIT (0)
HOST
routines cannot be used when
accessing that database. If you attempt to use these routines with a caseless database,
the routines will return an error code of -2053. No case block should ever be created.
The following is a list of the routines that can only be used with "case" databases:
ZCCNT ZCCNTD ZCDEL ZCEXIT ZCFIND ZCGDMY ZCIS ZCISD ZCLOCK ZCNEXT ZCRDMY ZCREST ZCSAM ZCSAMD ZCWRIT ZNOR ZNORDIf you want to find out if a database is caseless or not, your program should call
ZNSIDS
with the second argument 0. ZNSIDS
returns the number of sort ids in the database for the
specified record type, which is 0 for a caseless database. (Actually it returns the number
of sort ids in the CIR for the caseless database).
ZNCASE
also returns the number of cases in the
specified database, and it will always
return 0 for a caseless database. However, it cannot be used as a test for case structure in a
database since it will return 0 for any empty database, and any caseless database
regardless of the number of records.
HOST
allows the user to access data from several
databases simultaneously. This capability is not available in DBMS
Retrieval.
A HOST
program is in multiple-database mode when it contains more than one
call to the database initialisation routines (ZORDB, ZOSDB). Note that multiple-database
mode remains in effect even if all of the databases have been closed.
In multiple database mode, the routines that initialise case and record processing also establish the identity of the current database. These routines are described in the section called Database Switching.
All of the records processed within a case loop are assumed to belong to the current database.
In Variable Descriptors, we saw that variable descriptors allow the user to access data at higher levels of the retrieval stack from within lower levels. This concept also applies to stack levels from different databases.
For example, suppose the retrieval stack contains the following levels:
level 1 - database DB1, CIR level 2 - database DB1, record type 5 level 3 - database DB2, CIR level 4 - database DB2, record type 8and we have defined the descriptor for the database variable,
AGE
, from record type 5 in
DB1 with the call:
IERR = ZDESCD (XAGE,'DB1 ',5, 'AGE ',0)Then, the database variable
AGE
can be retrieved at any level of the retrieval stack
(except level 1) by using its descriptor stored in XAGE
.If the stack contains two process rec 1 blocks, then stack level 0 indicates the innermost process rec.
HOST
also provides access to the databases by multiple
users. To use concurrent HOST
, a MASTER
process must be running and the user program must
login to that MASTER
. To do this, a typical application program will call
ZLOGIN
immediately after calling ZSTART
. If the user program does not call
ZLOGIN
with the name
of the MASTER
explicitly, the system will do it, using the name of the default MASTER
.
A given application program
can be logged-in to only one MASTER
at a time. For regular HOST
programs,
the calling of ZLOGIN
is optional.
To determine from within a program which of the two versions of HOST
is used,
the function ZVERS
can be called. It will return 0 for regular
HOST
and 1
for concurrent HOST
.
HOST
2.2, (both regular and concurrent) there are 6 lock types defined:Lock-type number Lock type 0 or 14 protected read 1 or 16 exclusive 11 null 12 concurrent read 13 concurrent write 15 protected writeThe locks ensure data integrity. They prevent other programs from updating records that you are updating. Several
HOST
programs feature the option to set and test
the locks.
HOST
routines great care must be taken to insure that the
formal parameters match in both number and type. TABLE 1 below indicates the various
argument types used by HOST. See the documentation in the API subdirectory for information
and examples for the exact declarations and representations needed for each data type.
ABBREV TYPE DESCRIPTION B*n BYTE This is a CHARACTER*N structure as defined by the FORTRAN 77 compiler on your machine. It must be of the proper size to hold the character strings to be passed to or from it. D*8 DESCRIPTOR This is an (8 byte) area containing a set of values that uniquely describe a data variable ( i.e. vari- able number, record type number, database number, stack location ). This data type may be stored as a REAL*8 on some machines; in this case care should be taken in transferring descriptors because it is not a REAL*8 value but an 8 byte bit pattern and no floating operations such as normalisation should be performed. I*4 INTEGER This is I*4 as defined in Machine Specifics documentation.( It might be 4 or 8 bytes long. ) N*8 NAME This is a CHARACTER*8 created by a FORTRAN 77 compiler. R*n REAL This is R*4 or R*8 as defined in your Machine Dependencies documentation.
HOST
are listed below.
Certain machines have additional routines available usually dealing with additional type
conversions and other utilities to ease the use of the HOST
package. See the
documentation in the API subdirectory for more information on these routines.
Note that all of the HOST
functions are of type INTEGER*4
regardless of the
first letter of the names. Declare them as type INTEGER*4
in each routine that calls
them. Also, the types of the function arguments do not correspond to standard
FORTRAN
usage ( i.e. first letter I
through N
is type
INTEGER
, otherwise
REAL
).
As already stated, these functions may return 0, a required value, a positive status value, or a negative error code. In Chapter 3, the return values for the functions will be documented only if they have a specific significance. If they are not documented, the assumption is that the function will return a positive or zero value for success and a negative value for failure.
ZSTART
Initialises the HOST
system.
ZLOGIN
login the current process into a specified MASTER
.
ZSECUR
Specifies security passwords for current stream.
ZORDB
Initialises a specified random format database for use.
ZOSDB
Initialises a specified sequential format database for use.
ZUSER
Allows the switching of the current retrieval stack from one stream
to another.
ZCALL
Call HOST
functions and test their return code.
ZENDDB
Terminates the use of a specified database. It closes and return the
files for use by other jobs. In order to use the database again it must be
reinitialised.
ZCLEAR
Terminates all levels in the retrieval stack of a specified
stream.
ZEND
Terminates the HOST
run. It cleans up tables and checks
that the databases have been properly closed and all internal operations are completed.
If any databases are still open, ZEND attempts to close them.
ZCCNT
Initialises a "PROCESS CASE
"
block with either the "ALL
" or "COUNT
"
option.
ZCCNTD
Initialises a "PROCESS CASE
"
block with either the "ALL
" or "COUNT
"
option. It also provides the capability of changing databases.
ZCGDMY
Initialise a case-processing block of an undefined type (dummy).It
also provides the capability of changing databases.
ZCIS
Initialises a "CASE IS
" block.
ZCISD
Initialises a "CASE IS
" block. It also provides the capability of
changing databases.
ZCSAM
Initialises a "PROCESS CASE
" block with a "SAMPLE
" option.
ZCSAMD
Initialises a "PROCESS CASE
" block with a "SAMPLE
" option. It also
provides the capability of changing databases.
ZCREST
Restores the common variables in the innermost case processing block.
ZCRDMY
Terminates the current case-processing level and resets it to a dummy.
ZCFIND
Finds a case, after a dummy case-processing block was initialised and
some CIR variables specified.
ZCFRST
Gets the first case in a case-processing block.
ZCLAST
Gets the last case in a case-processing block.
ZCNEXT
Gets the next case in a case-processing block.
ZCPREV
Gets the previous case in a case-processing block.
ZCLOCK
Returns the lock type of a case-processing block.
ZCDEL
Deletes the current case in the innermost case-processing block.
ZCWRIT
Writes the current innermost CIR to the database as a permanent change.
ZCEXIT
Leaves the current case-processing block and pops the retrieval stack
back one level of retrieval nesting.
ZRCNT
Initialises a "PROCESS RECORD
"
block with either the "ALL
" or "COUNT
" option.
ZRCNTD
Initialises a "PROCESS RECORD
"
block with either the "ALL
" or "COUNT
"
option. It also provides the capability of changing databases.
ZRCNTL
Initialises a "PROCESS RECORD
"
block with either the "ALL
" or "COUNT
"
option, belonging to a CIR on a specified level.
ZRGDMY
Initialise a record-processing block of an undefined type (dummy). It
also provides the capability of changing databases.
ZRGDMD
Initialise a record-processing block of an undefined type (dummy). It
also provides the capability of changing databases.
ZRGDML
Initialises a record-processing of an undefined type (dummy) block,
belonging to a CIR on a specified level.
ZRIS
Initialises a "RECORD IS
" block.
ZRISD
Initialises a "RECORD IS
" block. It also provides the capability of
changing databases.
ZRISL
Initialises a "RECORD IS
" block belonging to a CIR on a specified level.
ZRSAM
Initialises a "PROCESS RECORD
" block with a "SAMPLE
" option.
ZRSAMD
Initialises a "PROCESS RECORD
" block with a "SAMPLE
" option. It also
provides the capability of changing databases.
ZRSAML
Initialises a "PROCESS RECORD
" block with a "SAMPLE
" option,
belonging to a CIR on a specified level.
ZRREST
Restores the record variables in the innermost record processing block.
ZRRDMY
Terminates the current record-processing level and resets it to dummy.
ZRFIND
Finds a record, after a dummy record-processing block was initialised
and some record variables specified.
ZRFRST
Gets the first case in a record-processing block.
ZRLAST
Gets the last case in a record-processing block.
ZRNEXT
Gets the next case in a record-processing block.
ZRPREV
Gets the previous case in a record-processing block.
ZRLOCK
Returns the lock type of a record-processing block.
ZRDEL
Deletes the current record in the innermost record-processing block.
ZRWRIT
Writes the current innermost record to the database as a permanent change.
ZREXIT
Leaves the current record-block and pops the retrieval stack one
level of retrieval nesting.
ZAFTER
Initialises the creation of a key for either case or record
processing levels. It starts up a key of the form of the "AFTER
" keyword on the PROCESS
statement in DBMS
.
ZBEGIN
Initialises the creation of a key for either case or record
processing levels. It starts up a key of an yet undefined form.
ZFROM
Initialises the creation of a key for either case or record
processing levels. It starts up a key of the form of the "FROM
" keyword on the PROCESS
statement in DBMS
.
ZTHRU
Initialises the creation of a key for either case or record
processing levels. It starts up a key of the form of the "THRU
" keyword on the PROCESS
statement in DBMS
.
ZUNTIL
Initialises the creation of a key for either case or record
processing levels. It starts up a key of the form of the "UNTIL
" keyword on the PROCESS
statement in DBMS
.
ZWITH
Initialises the creation of a key for either case or record
processing levels. It starts up a key of the form of the "WITH
" keyword on the PROCESS
statement in DBMS
.
ZDTTKY
Moves a date string into the next sort-id position of the current key.
ZFPTKY
Moves a real value into the next sort-id position of the current key.
ZINTKY
Moves an integer value into the next sort-id position of the current key.
ZSTTKY
Moves a character string into the next sort-id position of the current key.
ZTMTKY
Moves a time string into the next sort-id position of the current key.
ZBLTRC
Stores a blank missing value in a variable.
ZDTTRC
Moves a date string into a specified variable descriptor.
ZFPTRC
Moves a real value into a specified variable descriptor.
ZINTRC
Moves an integer value into a specified variable descriptor.
ZMSTRC
Transfers a missing/undefined value to a specified variable descriptor.
ZRCTRC
Transfers the value from one variable descriptor to another variable descriptor.
ZSTTRC
Moves a string value into a specified variable descriptor.
ZTMTRC
Moves a time string into a specified variable descriptor.
ZRCTDT
Returns the value of a specified date variable descriptor.
ZRCTFP
Returns the value of a specified real variable descriptor.
ZRCTIN
Returns the value of a specified integer variable descriptor.
ZRCTST
Returns the value of a specified string variable descriptor.
ZRCTTM
Returns the value of a specified time variable descriptor.
ZVERS
Returns the version and revision numbers of HOST.
ZOPEN
Returns an indication of whether a specified database is currently
available for use or not.
ZUPLEV
Returns the current update level of a database.
ZSECLV
Returns the current security levels for a specified database.
ZLCKRT
Sets/returns the record type lock for a specific record type.
ZNCASE
Returns the number of cases in the database.
ZNRECS
Returns the number of records of a specific type that are currently
in the database.
ZNEW
Returns an indication of whether the last CIR/record accessed was a
new CIR/record or an existing CIR/record.
ZNOR
Returns the number of records of a specific type that are currently
in the innermost CIR.
ZNORD
Returns the number of records of a specific type that are currently
in the innermost CIR of a specified database.
ZRNAMD
Returns the record name for a record number.
ZRNUM
Returns the record number for a record name.
ZRNUMD
Returns the record number for a record name in a specified database.
ZNVARS
Returns the number of variables in a specific record type.
ZNSIDS
Returns the number of sort ids in the key of a record of a specific type.
ZVARLB
Returns the variable label of a variable specified by descriptor.
ZVNAME
Returns the variable name for a variable specified by descriptor.
ZVTYPE
Returns the storage type of the variable specified by descriptor.
ZLABLN
Returns the value label for a value of a specified numeric variable descriptor.
ZLABLS
Returns the value label for a value of a specified string variable descriptor.
ZMSLAB
Returns the value label for a missing value.
ZDESC
Builds the variable descriptor from a variable description.
ZDESCD
Builds the variable descriptor from a variable description for a
variable in a different database.
ZSDESC
Returns the variable descriptor corresponding to the nth sortid of
the specified record type.
ZDESCB
Breaks a descriptor in its four components.
ZDESCM
Makes a descriptor out of its four components.
ZEXIT
Performs the equivalent of ZCEXIT for a case-processing block and of
ZREXIT for a record-processing block.
ZATTR
Perform equivalent to DBMS
ATTRIBUTE
command.
ZCACHE
Activates/deactivates the caching and sets/reads various caching parameters.
ZOPT
Set or return various system options.
ZERMSG
Returns a text string describing a specific numbered error.
Optionally it can also file the error message in the job log.
ZDTXIN
Converts a date string into a date integer.
ZINXDT
Converts a date integer into a date string.
ZTMXIN
Converts a time string into a time integer.
ZINXTM
Converts a time integer into a time string.
ZTIME
Returns the current date and time as julian integers.
ZDTXKY
Moves a date string into the next sort-id position of the current key.
ZFPXKY
Moves a real value into the next sort-id position of the current key.
ZINXKY
Moves an integer value into the next sort-id position of the current key.
ZSTXKY
Moves a character string into the next sort-id position of the current key.
ZTMXKY
Moves a time string into the next sort-id position of the current key.
ZDTXRC
Moves a date string into a specified variable descriptor.
ZFPXRC
Moves a real value into a specified variable descriptor.
ZINXRC
Moves an integer value into a specified variable descriptor.
ZSTXRC
Moves a string value into a specified variable descriptor.
ZTMXRC
Moves a time string into a specified variable descriptor.
ZRCXDT
Returns the value of a specified date variable descriptor.
ZRCXFP
Returns the value of a specified real variable descriptor.
ZRCXIN
Returns the value of a specified integer variable descriptor.
ZRCXST
Returns the value of a specified string variable descriptor.
ZRCXTM
Returns the value of a specified time variable descriptor.
HOST
routines manipulate the databases. (The term "specified" refers to an item in the argument
list of the subroutine):
ZCCNTD
,
ZCGDMY
,
ZCISD
,
ZCSAMD
,
ZRCNTD
,
ZRGDMD
,
ZRISD
,
ZRSAMD
explicitly make the specified database be the current database.
ZRCNTL
,
ZRGDML
,
ZRISL
,
ZRSAML
make the
database at the specified level be the current database.
ZEXIT
,
ZCEXIT
,
ZEXIT
pop back 1 level from the
stack and make the database at the new level be the current database.
ZORDB
,
ZOSDB
do not switch databases. However, if there is no
current database, the specified database is made current.
ZENDDB
does not switch databases. However, if the specified database is the
current one, the "next" open database is made current.