*************************************************************************
**
** Source File Name = dbstat.sqb
**
** 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 IBM Corp.
**
** APIs USED :
** REORGANIZE TABLE sqlgreot()
** RUN STATISTICS sqlgstat()
**
** 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. "dbstat".
Data Division.
Working-Storage Section.
copy "sqlenv.cbl".
copy "sqlca.cbl".
copy "sqlutil.cbl".
* host variables for REORGANIZE TABLE and RUN STATISTICS
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 qualifier-table pic x(27).
77 statement pic x(254).
01 instance pic x(9).
EXEC SQL END DECLARE SECTION END-EXEC.
77 errloc pic x(80).
77 rc pic s9(9) comp-5.
* variables for REORGANIZE TABLE and RUN STATISTICS
77 tablespace-len pic 9(4) comp-5 value 0.
77 tablespace pic x(254).
77 indexname-len pic 9(4) comp-5 value 14.
77 indexname pic x(14) value "sample.testind".
77 qualifier-table-len pic 9(4) comp-5 value 0.
77 num-indexes pic 9(4) comp-5 value 1.
01 list-of-lengths.
05 i-length occurs 1 times pic 9(4) comp-5.
01 list-of-indexes.
05 l-index occurs 1 times pointer.
Procedure Division.
dbstat Section.
display "Sample COBOL program: DBSTAT".
display "Enter your userid: " with no advancing.
accept instance.
EXEC SQL CONNECT TO sample END-EXEC.
move "CONNECT TO SAMPLE" to errloc.
call "checkerr" using SQLCA errloc.
EXEC SQL DROP INDEX sample.testind END-EXEC.
display "CREATE INDEX".
EXEC SQL CREATE INDEX sample.testind ON staff (salary)
END-EXEC.
move "CONNECT TO SAMPLE" to errloc.
call "checkerr" using SQLCA errloc.
* concatenate 'instance' with ".staff" into 'qualifier-table'.
move spaces to qualifier-table.
string instance delimited by " ", ".staff" delimited by
size into qualifier-table.
inspect qualifier-table tallying qualifier-table-len for
characters before initial " ".
display "REORGanizing TABLE " qualifier-table.
********************************************
* REORGANIZING TABLE STATISTICS API called *
********************************************
call "sqlgreot" using
by value tablespace-len
by value indexname-len
by value qualifier-table-len
by reference sqlca
by reference tablespace
by reference indexname
by reference qualifier-table
returning rc.
move "reorganizing the STAFF table" to errloc.
call "checkerr" using SQLCA errloc.
display "RUNning STATISTICS".
*****************************
* RUN STATISTICS API called *
*****************************
set l-index(1) to nulls.
call "sqlgstat" using
by value qualifier-table-len
by value num-indexes
by value SQL-STATS-TABLE
by value SQL-STATS-CHG
by reference list-of-lengths
by reference sqlca
by reference list-of-indexes
by reference qualifier-table
returning rc.
move "stats" to errloc.
call "checkerr" using SQLCA errloc.
EXEC SQL CONNECT RESET END-EXEC.
move "CONNECT RESET" to errloc.
call "checkerr" using SQLCA errloc.
End-dbstat. stop run.