SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)

Static Rowsets
HP NonStop SQL/MX Programming Manual for C and COBOL523627-004
7-35
Limiting the Size of a Rowset-Derived Table
AS rs(jobcode, jobdesc);
...
...
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 sqlstate pic x(5).
01 rs.
02 ROWSET[5] hvajobcode pic 9(4) comp.
02 ROWSET[5] hvajobdesc pic x(18).
EXEC SQL END DECLARE SECTION END-EXEC.
...
***** Populate the rowset in some way *****
Move 100 TO hvajobcode (1)
Move "PROJECT MANAGER" TO hvajobdesc(1)
Move 200 TO hvajobcode (2)
Move "PROGRAM MANAGER" TO hvajobdesc(2)
Move 300 TO hvajobcode (3)
Move "QUALITY SUPERVISOR" TO hvajobdesc(3)
Move 400 TO hvajobcode (4)
Move "TECHNICAL OFFICER" TO hvajobdesc(4)
Move 500 TO hvajobcode (5)
Move "EXECUTIVE OFFICER" TO hvajobdesc(5)
EXEC SQL INSERT INTO job
SELECT jobcode, jobdesc
FROM ROWSET(:hvajobcode, :hvajobdesc)
AS rs(jobcode, jobdesc) END-EXEC.
...
Limiting the Size of a Rowset-Derived Table
When you are inserting rows from a rowset-derived table, you must limit the input size
to only the rows that have been populated with data.
Example
This example inserts multiple rows into the JOB table. The input size is limited by the
size of the rowset-derived table:
EXEC SQL BEGIN DECLARE SECTION;
char SQLSTATE[6];
ROWSET[10] unsigned NUMERIC (4) hva_jobcode;
ROWSET[10] VARCHAR hva_jobdesc[19];
...
EXEC SQL END DECLARE SECTION;
...
/* Populate the first five rows in some way. */
...
EXEC SQL INSERT INTO persnl.job
SELECT jobcode, jobdesc
FROM ROWSET 5 (:hva_jobcode, :hva_jobdesc)
AS rs(jobcode, jobdesc);
...
...
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
COBOL
C
COBOL