Retrieving information from the database

Retrieving ZEBRA datastructures

               +------------------------------------------+
               | CALL  CDUSE (PATH,*LSUP*,ISEL,CHOPT,IRC*) |
               +------------------------------------------+
                                  

PATH
Character string describing the pathname
LSUP
Address of the supporting link of the Keys bank(s) KYDB (input or output)
ISEL
Integer vector specifying the instant of validity for which a database object is required. The length of the vector is equal to the number of validity range pairs, itself a database constant. For example, in the case when we select by run and event, the number of pairs is 2. ISEL then contains the specific run and event for which an object is required.
CHOPT
Character string with any of the following characters
A
Accept existing datastructure if one already exists in memory.
D
Drop datastructure at LSUP before retrieving new datastructure
N
Force retrieval of new datastructure even if current information as still valid
K
read only the keys (no data is required)
IRC
Integer return code
0
Successful operation
1
Illegal character option
2
Illegal path name
3
Database structure in memory clobbered
4
Illegal key option
5
Error in DBCHLD in P3 communication
36
Data bank address zero on return from DBKXIN
37
Insufficient space in USER store array

Prepares the database data structure in memory for any required Pathname and set of Keys, unless already done. Returns (optionally) the addresses in memory for the corresponding Key banks and Data banks after checking their validity for the given time and keys.

If the pathname begins with a % character then it is assumed to be an alias and is automatically translated by the internal HEPDB routines.

Supplementary return information

IQUEST(2)
Return status (if IRC = 0)
0
No disk I/O has been performed
1
Data have been refreshed from the disk

Retrieving multiple ZEBRA datastructures

          +----------------------------------------------------+
          |CALL  CDUSEM (PATH,LSUP*,ISEL,IMASK,KEYS,CHOPT,IRC*) |
          +----------------------------------------------------+
                                  

PATH
Character string describing the pathname
LSUP
Address of the supporting link of the Keys bank(s) KYDB
ISEL
Integer vector specifying the instant of validity for which a database object is required. The length of the vector is equal to the number of validity range pairs, itself a database constant. For example, in the case when we select by run and event, the number of pairs is 2. ISEL then contains the specific run and event for which an object is required.
IMASK
Integer vector indicating which elements of IMASK is non-zero, then the corresponding element of KEYS is used in selecting a dataset.
KEYS
Vector of keys. Only the elements for which the corresponding element of IMASK is non-zero are assumed to contain useful information.
CHOPT
Character string with any of the following characters
'A'
Accept existing datastructure if one already exists in memory.
'K'
read only the keys (no data is required)
'D'
Drop datastructure at LSUP before retrieving new datastructure
'N'
Force retrieval of new datastructure even if current information is still valid
'M'
Perform multiple selection: select according to input keys banks, rather than KEYS vector. The user must prepare a linear chain of key banks prior to calling this routine using the routine CDBOOK.
'S'
Select all objects satisfying the input selection criteria
IRC
Integer return code
0
Successful operation
1
Illegal character option
2
Illegal path name
3
Database structure in memory clobbered
4
Illegal key option
5
Error in DBCHLD in P3 communication
36
Data bank address zero on return from DBKXIN
37
Insufficient space in USER store array

Prepares the database data structure in memory for any required Pathname and set of Keys, unless already done. Returns (optionally) the addresses in memory for the corresponding Key banks and Data banks after checking their validity for the given time and keys.

If the pathname begins with a % character then it is assumed to be an alias and is automatically translated by the internal HEPDB routines.

Supplementary return information

IQUEST(2)
Return status (if IRC = 0)
0
No disk i/o has been performed
1
Data have been refreshed from the disk

Retrieving data structure to user specified address

       +----------------------------------------------------------+
       | CALL  CDGET (PATH,IXDIV,LSUP*,JBIAS,ISEL,KEYS,CHOPT,IRC*) |
       +----------------------------------------------------------+
                                  

PATH
Character string describing the pathname
IXDIV
Index of the division in which the data structure should be returned
LSUP
Address of the data bank
JBIAS
JBIAS together specify the address at which the structure is to be inserted. If JBIAS < 1 it is used as an offset to the value of LSUP, so the structure will be connected at LQ(LSUP+JBIAS). If JBIAS = 1 the data-structure will be a top level data-structure connected at LSUP. If JBIAS = 2 the data-structure will be created as a standalone structure
ISEL
Integer vector specifying the instant of validity for which a database object is required. The length of the vector is equal to the number of validity range pairs, itself a database constant. For example, in the case when we select on run and event, the number of pairs is 2. ISEL then contains the specific run and event for which an object is required.
KEYS
Integer vector in which the keys vector associated with the retrieved data object are returned.
CHOPT
Character string with any of the following characters
'A'
Accept existing datastructure if one already exists in memory.
'K'
read only the keys (no data is required)
'D'
Drop datastructure at LSUP before retrieving new datastructure
'N'
Force retrieval of new datastructure even if current information is still valid
IRC
Integer return code
0
Successful operation
1
Illegal character option
2
Illegal path name
3
Database structure in memory clobbered
4
Illegal key option
5
Error in DBCHLD in P3 communication
36
Data bank address zero on return from DBKXIN
37
Insufficient space in USER store array

In some cases, for example in existing applications, one may wish to retrieve a data structure to a user specified location. In this case, CDGET may be used. Note that the data caching provided by CDUSE and CDFREE is not supported by this routine.

If the pathname begins with a % character then it is assumed to be an alias and is automatically translated by the internal HEPDB routines.

Supplementary return information

IQUEST(2)
Return status (if IRC = 0)
0
No disk i/o has been performed
1
Data have been refreshed from the disk