SQL/MP Programming Manual for C
Explicit Program Compilation
HP NonStop SQL/MP Programming Manual for C—429847-008
6-37
Dynamic SQL Statements
In this example, the CONTROL EXECUTOR directive specifies parallel evaluation
when the program runs the first FETCH statement for the cursor.
EXEC SQL CONTROL EXECUTOR PARALLEL EXECUTION ON;
EXEC SQL DECLARE list_customers_with_orders CURSOR FOR
SELECT CUSTOMER.CUSTNUM, CUSTOMER.CUSTNAME
FROM =CUSTOMER, =ORDERS
WHERE CUSTOMER.CUSTNUM = ORDERS.CUSTNUM
STABLE ACCESS;
This example varies the wait time for cursors that access the PARTS table. The default
wait time (60 seconds) applies only to the first cursor (cursor1).
...
/* Default wait... */
EXEC SQL
DECLARE CURSOR cursor1
FOR SELECT partnum,partdesc,price
FROM sales.parts
WHERE (partnum > :min_partnum AND partnum < :max_partnum)
ORDER BY partnum;
/* Short wait... .*/
EXEC SQL CONTROL TABLE sales.parts TIMEOUT .1 SECOND;
EXEC SQL
DECLARE CURSOR cursor2
FOR SELECT partnum,partdesc,price
FROM sales.parts
WHERE (partnum > :min_partnum AND partnum < :max_partnum)
ORDER BY partnum;
/* Infinite wait....*/
EXEC SQL CONTROL TABLE sales.parts TIMEOUT -1 SECOND;
EXEC SQL
DECLARE CURSOR cursor3
FOR SELECT partnum,partdesc,price
FROM sales.parts
WHERE (partnum > :min_partnum AND partnum < :max_partnum)
ORDER BY partnum;
...
Dynamic SQL Statements
A static CONTROL TABLE directive does not affect dynamic SQL statements. To use a
CONTROL TABLE directive with dynamic SQL statements, specify a dynamic
CONTROL TABLE directive by using the PREPARE and EXECUTE (or EXECUTE
IMMEDIATE) statements.