*************************************************************************
**
** Source File Name = loadqry.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.
**
** PURPOSE: This program is an example of how APIs are implemented in
** order to query the current status of a LOAD being invoked
** on the table "TABLE" in the database "SAMPLE".
**
** APIs USED :
** LOAD QUERY db2gLoadQuery()
**
** 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. "loadqry".
Data Division.
Working-Storage Section.
copy "sqlenv.cbl".
copy "sqlca.cbl".
copy "sqlutil.cbl".
copy "db2ApiDf.cbl".
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 statement pic x(127).
01 userid pic x(8).
01 passwd.
49 passwd-length pic s9(4) comp-5 value 0.
49 passwd-name pic x(18).
EXEC SQL END DECLARE SECTION END-EXEC.
77 ApiVersion pic s9(9) comp-5 value 6010000.
77 rc pic s9(9) comp-5.
77 errloc pic x(80).
77 LocalMsgFileName pic x(80) value "loadqry.msg".
77 LocalMsgFileLength pic s9(4) comp-5 value 11.
77 TableName pic x(80) value "table".
77 TableNameLength pic s9(4) comp-5 value 5.
01 ParameterStructure.
05 iStringType PIC 9(9) COMP-5.
05 iStringLen PIC 9(9) COMP-5.
05 piString USAGE IS POINTER.
05 iShowLoadMessages PIC 9(9) COMP-5.
05 poOutputStruct USAGE IS POINTER.
05 iLocalMessageFileLen PIC 9(9) COMP-5.
05 piLocalMessageFile USAGE IS POINTER.
01 OutputStructure.
05 oRowsRead PIC 9(9) COMP-5.
05 oRowsSkipped PIC 9(9) COMP-5.
05 oRowsCommitted PIC 9(9) COMP-5.
05 oRowsLoaded PIC 9(9) COMP-5.
05 oRowsRejected PIC 9(9) COMP-5.
05 oRowsDeleted PIC 9(9) COMP-5.
05 oCurrentIndex PIC 9(9) COMP-5.
05 oNumTotalIndexes PIC 9(9) COMP-5.
05 oCurrentMPPNode PIC 9(9) COMP-5.
05 oLoadRestarted PIC 9(9) COMP-5.
05 oWhichPhase PIC 9(9) COMP-5.
05 oWarningCount PIC 9(9) COMP-5.
Procedure Division.
Main Section.
display "Sample COBOL program: loadqry".
display "Enter your user id (default none): "
with no advancing.
accept userid.
if userid = spaces
EXEC SQL CONNECT TO sample END-EXEC
else
display "Enter your password : " with no advancing
accept passwd-name.
* Passwords in a CONNECT statement must be entered in a VARCHAR format
* with the length of the input string.
inspect passwd-name tallying passwd-length for characters
before initial " ".
EXEC SQL CONNECT TO sample USER :userid USING :passwd
END-EXEC.
move "CONNECT TO" to errloc.
call "checkerr" using SQLCA errloc.
***************
* LOAD QUERY *
***************
move DB2LOADQUERY-TABLENAME to iStringType.
move TableNameLength to iStringLen.
set piString to address of TableName.
move DB2LOADQUERY-SHOW-ALL-MSGS to iShowLoadMessages.
set poOutputStruct to address of OutputStructure.
move LocalMsgFileLength to iLocalMessageFileLen.
set piLocalMessageFile to address of LocalMsgFileName.
move 0 to SQLCODE of SQLCA.
move 0 to oRowsRead.
move 0 to oRowsSkipped.
move 0 to oRowsLoaded.
move 0 to oRowsRejected.
move 0 to oRowsDeleted.
move 0 to oRowsCommitted.
call "db2gLoadQuery" using
by value ApiVersion
by reference ParameterStructure
by reference sqlca
returning rc.
display "Load Query reported SQLCODE ", SQLCODE of SQLCA.
if SQLCODE of SQLCA = 0
display "Load status has been written to loadqry.msg"
display " "
display "Number of rows read = ", oRowsRead
display "Number of rows skipped = ", oRowsSkipped
display "Number of rows loaded = ", oRowsLoaded
display "Number of rows rejected = ", oRowsRejected
display "Number of rows deleted = ", oRowsDeleted
display "Number of rows committed = ", oRowsCommitted
else
display "No load is in progress.".
EXEC SQL CONNECT RESET END-EXEC.
move "CONNECT RESET" to errloc.
call "checkerr" using SQLCA errloc.
End-Main.
go to End-Prog.
End-Prog.
stop run.