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-24
Limiting the Size of the Output Rowset
02 ROWSET[10] hva_jobcode pic 9(4) comp.
02 ROWSET[10] hva_jobdesc pic x(18).
02 input_size pic 9(4) comp
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC SQL DECLARE C1 CURSOR FOR
ROWSET FOR INPUT SIZE :input_size
SELECT jobdesc FROM persnl.job
WHERE jobcode = :hva_jobcode END-EXEC.
Move 3 TO input_size
***** Populate first 3 rows of input rowset. *****
Move 100 TO hva_jobcode(1)
Move 200 TO hva_jobcode(2)
Move 300 TO hva_jobcode(3)
EXEC SQL OPEN C1 END-EXEC.
EXEC SQL FETCH C1 INTO :hva_jobdesc END-EXEC.
*** Only rows with jobcode 100, 200 or 300 will be returned ***
Limiting the Size of the Output Rowset
When you select rows into a rowset, you can limit the size of the output rowset only
with the ROWSET FOR statement (that is, not in a cursor declaration) and for static
rowsets.
Example
This example retrieves multiple rows (JOBCODE and JOBDESC columns) from the
JOB table into host variable arrays. The output size is limited by the FOR OUTPUT
SIZE clause to five rows:
EXEC SQL BEGIN DECLARE SECTION;
char SQLSTATE[6];
ROWSET[10] unsigned NUMERIC (4) hva_jobcode;
ROWSET[10] VARCHAR hva_jobdesc[19];
long outputsize;
...
EXEC SQL END DECLARE SECTION;
...
outputsize=5;
EXEC SQL ROWSET FOR OUTPUT SIZE :outputsize
SELECT jobcode, jobdesc
INTO:hva_jobcode, :hva_jobdesc
FROM persnl.job;
...
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 sqlstate pic x(5).
01 rs.
02 ROWSET[10] hvajobcode pic 9(4) comp.
02 ROWSET[10] hvajobdesc pic x(18).
01 outputsize pic s9(9) comp.
C
COBOL