KEYEDIO Procedures

The GENERALSUPPORT library makes KEYEDIO library procedures available indirectly to programs in languages such as ALGOL and Pascal that have no direct interface to the KEYEDIO library. The KEYEDIO procedures that are exported from the GENERALSUPPORT library are described in the following subsections.

The library and the desired procedure should be declared as follows.

 LIBRARY ISAMLIBRARY (LIBACCESS = BYFUNCTION,
           FUNCTIONNAME = "GENERALSUPPORT");
 REAL PROCEDURE ISMGETKEYSTRUCTURE(ISAMFILE,KEYINFO,OPTION,OFFSET);
     VALUE OPTION,OFFSET;
     FILE  ISAMFILE;
     ARRAY KEYINFO[0];
     REAL  OPTION,OFFSET;
             LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMOPEN(ISAMFILE,FILEINFO,OPENTYPE);
     VALUE OPENTYPE;
     FILE  ISAMFILE;
     ARRAY FILEINFO[0];
     REAL  OPENTYPE;
             LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMCLOSE(ISAMFILE,CLOSETYPE);
     VALUE CLOSETYPE;
     FILE  ISAMFILE;
     REAL  CLOSETYPE;
             LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMSTART(ISAMFILE,KEYOFREF,KEYLEN,RECORD,CHOOZ);
     VALUE KEYOFREF,KEYLEN,CHOOZ;
     FILE  ISAMFILE;
     REAL  KEYOFREF,KEYLEN;
     ARRAY RECORD[0];
     REAL  CHOOZ;
             LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMSEQUENTIALWRITE(ISAMFILE,RECORD);
     FILE ISAMFILE;
     ARRAY RECORD[0];
             LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMSEQUENTIALREAD(ISAMFILE,RECORD);
       FILE ISAMFILE;
       ARRAY RECORD[0];
               LIBRARY ISAMLIBRARY;
 REAL PROCEDURE ISMRANDOMWRITE(ISAMFILE,RECORD);
     FILE ISAMFILE;
     ARRAY RECORD[0];
             LIBRARY ISAMLIBRARY;
REAL PROCEDURE ISMREWRITE(ISAMFILE,OPTION,RECORD);
     VALUE OPTION;
     FILE  ISAMFILE;
     REAL  OPTION;
     ARRAY RECORD[0];
             LIBRARY ISAMLIBRARY;
REAL PROCEDURE ISMDELETE(ISAMFILE,OPTION,RECORD);
     VALUE OPTION;
     FILE  ISAMFILE;
     REAL  OPTION;
     ARRAY RECORD[0];
             LIBRARY ISAMLIBRARY;
REAL PROCEDURE ISMRANDOMREAD(ISAMFILE,KEYOFREF,RECORD);
    VALUE KEYOFREF;
    FILE  ISAMFILE;
    REAL  KEYOFREF;
    ARRAY RECORD[0];
            LIBRARY ISAMLIBRARY;
REAL PROCEDURE ISMSETUPLIMIT(ISAMFILE,KEYOFREF,RECORDLEN,RECORD);
    VALUE KEYOFREF,RECORDLEN;
    FILE  ISAMFILE;
    REAL  KEYOFREF,RECORDLEN;
    ARRAY RECORD[0];
            LIBRARY ISAMLIBRARY;

The opening of keyed files requires two kinds of information for which no provision is made in nonkeyed files: key information and file access information.