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

Dynamic SQL With Descriptor Areas
HP NonStop SQL/MX Programming Manual for C and COBOL523627-004
10-5
Setting the Data Values of Input Parameters
Example
strcpy (hv_sql_statement, "UPDATE employee"
" SET salary = salary * 1.1"
" WHERE jobcode = CAST(? AS NUMERIC(4) UNSIGNED)");
...
desc_max=1;
EXEC SQL ALLOCATE DESCRIPTOR 'in_sqlda' WITH MAX :desc_max;
...
EXEC SQL PREPARE sqlstmt FROM :hv_sql_statement;
...
EXEC SQL DESCRIBE INPUT sqlstmt USING SQL DESCRIPTOR 'in_sqlda';
...
scanf("%hu",&in_jobcode);
...
desc_value = 1;
EXEC SQL SET DESCRIPTOR 'in_sqlda' VALUE :desc_value
VARIABLE_DATA = :in_jobcode;
...
EXEC SQL EXECUTE sqlstmt USING SQL DESCRIPTOR 'in_sqlda';
MOVE "UPDATE employee"
- " SET salary = salary * 1.1"
- " WHERE jobcode = CAST(? AS NUMERIC(4) UNSIGNED)"
TO hv-sql-statement.
...
MOVE 1 TO desc-max.
EXEC SQL ALLOCATE DESCRIPTOR 'in_sqlda'
WITH MAX :desc-max
END-EXEC.
...
EXEC SQL PREPARE sqlstmt FROM :hv-sql-statement END-EXEC.
...
EXEC SQL DESCRIBE INPUT sqlstmt
USING SQL DESCRIPTOR 'in_sqlda'
END-EXEC.
...
ACCEPT in-jobcode.
...
MOVE 1 TO desc-value.
EXEC SQL SET DESCRIPTOR 'in_sqlda' VALUE :desc-value
VARIABLE_DATA = :in-jobcode
END-EXEC.
...
EXEC SQL EXECUTE sqlstmt
USING SQL DESCRIPTOR 'in_sqlda'
END-EXEC.
C
COBOL