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 COBOL—523627-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










