*************************************************************************
**
** Source File Name = dbcmt.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 : to show the use of the CHANGE DATABASE COMMENT API.
** - search through the list of the database directory.
** - change the database comment.
**
** APIs USED :
** OPEN DATABASE DIRECTORY SCAN sqlgdosd()
** GET NEXT DATABASE DIRECTORY ENTRY sqlgdgne()
** CLOSE DATABASE DIRECTORY SCAN sqlgdcls()
** CHANGE DATABASE COMMENT sqlgdcgd()
** INSTALL SIGNAL HANDLER sqlgisig()
** DEREFERENCE ADDRESS sqlgdref()
**
**
** 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. "dbcmt".
Data Division.
Working-Storage Section.
copy "sqlenv.cbl".
copy "sqlutil.cbl".
copy "sqlca.cbl".
* Local Variables
77 rc pic s9(9) comp-5.
77 idx pic 9(4) comp-5.
77 errloc pic x(80).
* Variables for the CHANGE DATABASE COMMENT API
77 new-comment-len pic 9(4) comp-5 value 22.
77 path-len pic 9(4) comp-5 value 0.
77 alias-len pic 9(4) comp-5 value 0.
77 new-comment pic x(31) value "THIS IS A NEW Comment".
77 path pic x(1025).
* Variables for OPEN/CLOSE DATABASE DIRECTORY APIs.
77 dbCount pic 9(4) comp-5.
77 dbHandle pic 9(4) comp-5.
* Variables for GET NEXT DATABASE DIRECTORY ENTRY API.
01 buffer pointer.
77 sqledinfo-sz pic 9(4) comp-5 value 560.
77 disp-drive pic x(50).
Procedure Division.
dbcmt-pgm section.
display "Sample COBOL Program : dbcmt.cbl".
**************************
* INSTALL SIGNAL HANDLER *
**************************
call "sqlgisig" using
by reference sqlca
returning rc.
******************************************
* OPEN DATABASE DIRECTORY SCAN API called *
*******************************************
call "sqlgdosd" using
by value path-len
by reference sqlca
by reference dbCount
by reference dbHandle
by reference path
returning rc.
move "OPEN DATABASE DIRECTORY SCAN" to errloc.
call "checkerr" using SQLCA errloc.
perform get-db-entry thru end-get-db-entry
varying idx from 0 by 1 until idx equal dbCount.
after-change-comment.
********************************************
* CLOSE DATABASE DIRECTORY SCAN API called *
********************************************
call "sqlgdcls" using
by value dbHandle
by reference sqlca
returning rc.
move "CLOSE DATABASE DIRECTORY SCAN" to errloc.
call "checkerr" using SQLCA errloc.
end-dbcmt. stop run.
get-db-entry section.
************************************************
* GET NEXT DATABASE DIRECTORY ENTRY API called *
************************************************
call "sqlgdgne" using
by value dbHandle
by reference buffer
by reference sqlca
returning rc.
**********************************
* DEREFERENCE ADDRESS API called *
**********************************
call "sqlgdref" using
by value sqledinfo-sz
by reference SQLEDINFO
by reference buffer
returning rc.
if SQL-DBNAME equal "SAMPLE "
go to Change-Comment.
end-get-db-entry. exit.
Change-Comment Section.
inspect SQL-ALIAS tallying alias-len for characters
before initial " ".
inspect new-comment tallying new-comment-len for characters
before initial " ".
***************************
* CHANGE DATABASE COMMENT *
***************************
call "sqlgdcgd" using
by value new-comment-len
by value path-len
by value alias-len
by reference sqlca
by reference new-comment
by reference path
by reference SQL-ALIAS
returning rc.
move "CHANGE DATABASE COMMENT" to errloc.
call "checkerr" using SQLCA errloc.
display "CHANGE DATABASE COMMENT successful".
end-Change-Comment. go to after-change-comment.