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

C Sample Programs
HP NonStop SQL/MX Programming Manual for C and COBOL523627-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)