*************************************************************************
**
** Source File Name = dcscat.cbl
**
** Licensed Materials - Property of IBM
**
** (C) COPYRIGHT International Business Machines Corp. 1995, 2000
** All Rights Reserved.
**
** US Government Users Restricted Rights - Use, duplication or
** disclosure restricted by GSA ADP Schedule Contract with
**
** PURPOSE :
** This program is an example of how APIs are implemented in order to
** access DB/2. The order of the program is as follows:
** - create/catalog a DCS database
** - list a directory of DCS databases (showing what was created)
** - uncatalog the DCS database
**
** APIs USED :
** GET DCS DIRECTORY ENTRY sqlggdge()
** CATALOG DCS DIRECTORY ENTRY sqlggdad()
** OPEN DCS DIRECTORY SCAN sqlggdsc()
** GET DCS DIRECTORY ENTRIES sqlggdgt()
** CLOSE DCS DIRECTORY SCAN sqlggdcl()
** UNCATALOG DCS DIRECTORY ENTRY sqlggdel()
**
**
** For more information about these samples see the README file.
**
** For more information on Programming in COBOL, see the:
** - "Programming in COBOL" section of the Application Development Guide.
**
** For more information on Building COBOL Applications, see the:
** - "Building COBOL Applications" section of the Application Building Guide.
**
** For more information on the SQL language see the SQL Reference.
**
*************************************************************************
Identification Division.
Program-Id. "dcscat".
Data Division.
Working-Storage Section.
copy "sqlenv.cbl".
copy "sqlca.cbl".
* Local Variables
77 rc pic s9(9) comp-5.
77 errloc pic x(80).
* Variables for the DCS DIRECTORY SCAN APIs
77 dbcount pic s9(4) comp-5.
77 cbl-count pic s9(4) comp-5 value 1.
77 idx pic s9(4) comp-5.
Procedure Division.
dcscat-pgm section.
display "Sample COBOL Program : dcscat.cbl".
move "this is a dcs database" to COMMENT of SQL-DIR-ENTRY.
move "dcsnm" to LDB of SQL-DIR-ENTRY.
move "targetnm" to TDB of SQL-DIR-ENTRY.
move "arName" to AR of SQL-DIR-ENTRY.
move SQL-DCS-STR-ID to
STRUCT-ID of SQL-DIR-ENTRY.
move " " to PARM of SQL-DIR-ENTRY.
display "cataloging the DCS database : ",
TDB of SQL-DIR-ENTRY.
***********************************
* CATALOG DCS DATABASE API called *
***********************************
call "sqlggdad" using
by reference sqlca
by reference SQL-DIR-ENTRY
returning rc.
move "cataloging the database" to errloc.
call "checkerr" using SQLCA errloc.
display "database ", TDB of SQL-DIR-ENTRY,
" has been catalogued".
display "now listing all databases".
perform list-dcs thru end-list-dcs.
display "now uncataloging the database that was created ",
TDB of SQL-DIR-ENTRY.
*************************************
* UNCATALOG DCS DATABASE API called *
*************************************
call "sqlggdel" using
by reference sqlca
by reference SQL-DIR-ENTRY
returning rc.
move "uncataloging the database" to errloc.
call "checkerr" using SQLCA errloc.
display "now listing all databases [after uncatalog DCS]".
perform list-dcs thru end-list-dcs.
end-dcscat. stop run.
list-dcs Section.
**************************************
* OPEN DCS DIRECTORY SCAN API called *
**************************************
call "sqlggdsc" using
by reference sqlca
by reference dbcount
returning rc.
if sqlcode equal SQLE-RC-NO-ENTRY
display "--- DCS directory is empty ---"
go to close-dcs-scan.
move "opening the database directory scan" to errloc.
call "checkerr" using SQLCA errloc.
if dbcount not equal 0 then
perform display-dcs-info thru end-display-dcs-info
varying idx from 1 by 1 until idx equal dbcount.
display-dcs-info Section.
*************************************
* GET DCS DIRECTORY SCAN API called *
*************************************
call "sqlggdgt" using
by reference sqlca
by reference cbl-count
by reference SQL-DIR-ENTRY
returning rc.
display "number of dcs databases : " , cbl-count.
display "Local Database Name :" , LDB of SQL-DIR-ENTRY.
display "Target Database Name:" , TDB of SQL-DIR-ENTRY.
display "App. Requestor Name :" , AR of SQL-DIR-ENTRY.
display "DCS parameters :" , PARM of SQL-DIR-ENTRY.
display "Comment :" , COMMENT of SQL-DIR-ENTRY.
display "DCS Release Level :" ,
RELEASE-LVL of SQL-DIR-ENTRY.
display " ".
end-display-dcs-info. exit.
move "getting dcs database entries" to errloc.
call "checkerr" using SQLCA errloc.
*********************************************
* GET DCS DIRECTORY FOR DATABASE API called *
*********************************************
* use the SQL-DIR-ENTRY from the previous call
call "sqlggdge" using
by reference sqlca
by reference SQL-DIR-ENTRY
returning rc.
close-dcs-scan.
***************************************
* CLOSE DCS DIRECTORY SCAN API called *
***************************************
call "sqlggdcl" using
by reference sqlca
returning rc.
move "closing the database directory scan" to errloc.
call "checkerr" using SQLCA errloc.
end-list-dcs. exit.