SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)
C Sample Programs
HP NonStop SQL/MX Programming Manual for C and COBOL—523627-004
A-27
Using a Dynamic SQL Rowset
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size =
 ROWSET_VAR_LAYOUT_SIZE; 
printf("ROWSET_VAR_LAYOUT_SIZE after prepare & describe is %d\n",
 output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size =
 ROWSET_IND_LAYOUT_SIZE; 
printf("ROWSET_IND_LAYOUT_SIZE after prepare & describe is %d\n", 
 output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size = TYPE; 
printf("TYPE after prepare & describe is %d\n", output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size = TYPE_FS; 
printf("TYPE_FS after prepare & describe is %d\n", output_rowset_size); 
populateInputHostvars(); 
arr_ptr = (long) (&(b_arr[0])) ; 
ind_ptr = (long) (&(b_arr_ind[0])); 
arr_size = 4; 
ind_size = 2; 
EXEC SQL SET DESCRIPTOR :in_desc VALUE :num 
 VARIABLE_POINTER = :arr_ptr, 
 INDICATOR_POINTER = :ind_ptr, 
 ROWSET_VAR_LAYOUT_SIZE = :arr_size, 
 ROWSET_IND_LAYOUT_SIZE = :ind_size; 
EXEC SQL GET DESCRIPTOR :in_desc :output_rowset_size = ROWSET_SIZE; 
printf("ROWSET_SIZE after prepare & describe is %d\n", output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc :output_rowset_size = COUNT; 
printf("COUNT after prepare & describe is %d\n", output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size =
 ROWSET_VAR_LAYOUT_SIZE; 
printf("ROWSET_VAR_LAYOUT_SIZE after prepare & describe is %d\n", 
 output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size =
 ROWSET_IND_LAYOUT_SIZE; 
printf("ROWSET_IND_LAYOUT_SIZE after prepare & describe is %d\n", 
 output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size = TYPE; 
printf("TYPE after prepare & describe is %d\n", output_rowset_size); 
EXEC SQL GET DESCRIPTOR :in_desc VALUE :num :output_rowset_size = TYPE_FS; 
printf("TYPE_FS after prepare & describe is %d\n", output_rowset_size); 
EXEC SQL EXECUTE S1 USING SQL DESCRIPTOR :in_desc; 
EXEC SQL COMMIT ; 
printRowsFromDynamic5(); 
EXEC SQL DELETE FROM CAT.SCH.DYNAMIC5; 
EXEC SQL DEALLOCATE DESCRIPTOR :in_desc ; 
EXEC SQL DEALLOCATE PREPARE S1; 
} 
Example A-8. Dynamic SQL Rowsets  (page 2 of 2)










