HP 3000 Manuals

Obtaining Database Structure Information [ TurboIMAGE/XL Database Management System Reference Manual ] MPE/iX 5.0 Documentation


TurboIMAGE/XL Database Management System Reference Manual

Obtaining Database Structure Information 

The DBINFO library procedure allows you to acquire information
programmatically about the database.  It provides information about data
items, data sets, or data paths.  The information returned is restricted
by the user class number and access mode established when the database is
opened.

Any data items, data sets, or paths of the database inaccessible to that
user class or in that access mode are considered to be non-existent.  For
example, if the access mode grants only read access, this procedure will
indicate that no data sets can have entries added.  The information that
can be obtained through separate calls to DBINFO is summarized below.

In relation to data items, DBINFO can be used to:

   *   Determine whether the user class number established when the
       database is opened allows a specified data item value to be
       changed in at least one data set, or allows a data entry
       containing the item to be added or deleted.

   *   Get a description of a data item including the data item name,
       type, sub-item length, and sub-item count.  This information
       corresponds to that which is specified in the item part of the
       schema.

   *   Determine the number of items in the database available to the
       current user and to get a list of numbers identifying those items.
       The numbers indicate the position of each data item in the item
       part of the schema.  The type of access, for example read-only,
       can also be determined.

   *   Determine the number of items in a particular data set available
       to the current user and get a list of those item numbers and the
       type of access available for each one.

In relation to data sets, DBINFO can be used to:

   *   Determine whether the current user can add or delete entries to a
       particular data set.

   *   Get a data set description including the data set name, type,
       length in halfwords and blocking factor for data entries in the
       set, number of entries in the set, and the capacity.

   *   Determine the number of data sets the current user can access and
       get a list of the data set numbers indicating the position of the
       data set definition in the set part of the schema.  The type of
       access to each set is also indicated.

   *   Determine in which data sets a particular data item is available
       to the current user.  The number of data sets, a list of data set
       numbers, and the type of access available for each set is
       returned.

In relation to paths, DBINFO can be used to:

   *   Get information about the paths associated with a particular data
       set including the number of paths.  If the data set is a master
       set, the information includes the data set number, search item
       number, and sort item number for each related detail.  If the data
       set is a detail set, the information includes the master data set
       number of the related master data set, the detail search item
       number and sort item number for each path.

   *   Determine the key item number of a master data set or the search
       item number for the primary path of the detail and the data set
       number of the related master.  In either case, if the search item
       is inaccessible to the current user, no information is returned.

Special Uses of DBINFO 

If the application program uses data items and data set numbers when
calling the other TurboIMAGE/XL procedures, it is good practice to
determine these numbers by calling DBINFO at the beginning of the program
to set up the numbers.  It is not practical to code the numbers into the
program because a change to the database structure might require
extensive changes to the application programs.  Likewise, it is
inefficient and time consuming to call DBINFO throughout the program to
determine these numbers.  Many application programmers prefer the
convenience and flexibility of using the data item and data set names in
procedure calls.

DBINFO is useful when writing general inquiry applications similar to the
QUERY/3000 database inquiry facility.  DBINFO can also be used to obtain
information regarding the logging facility, dynamic transactions,
third-party indexing, and the critical item update (CIUPDATE) option
settings for a database and the current process.  In relation to Native
Language Support (NLS), DBINFO can be used to get the MPE/iX numeric code
that defines the native language supported by the database.  (Refer to
"Database Description Language" and "Schema Structure" in chapter 3.)

Checking Subsystem Flag 

A subsystem flag can be set with the DBUTIL >>SET command.  This flag
indicates whether subsystems, including user programs, can access the
TurboIMAGE/XL database and, if access is allowed, whether it is read only
or both read and write.  Because the flag does not actually allow or
prevent access, the subsystem or user program must include a call to
DBINFO to test this flag.  QUERY/3000 is the primary subsystem which uses
the subsystem flag.



MPE/iX 5.0 Documentation