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

Dynamic SQL Cursors
HP NonStop SQL/MX Programming Manual for C and COBOL523627-004
11-2
Steps for Using a Dynamic SQL Cursor
Steps for Using a Dynamic SQL Cursor
Figure 11-1 shows the steps presented within the complete C program. These steps
are executed in the sample program Example A-6 on page A-15.
Figure 11-1. Using a Dynamic SQL Cursor in a C Program
...
EXEC SQL BEGIN DECLARE SECTION;
short hostvar;
char curspec[80];
...
EXEC SQL END DECLARE SECTION;
...
strcpy(curspec,"SELECT column1,column2,column3"
" FROM catalog.schema.table"
" WHERE column1 = CAST(? AS sql_type)");
...
EXEC SQL PREPARE cursor_spec FROM :curspec;
...
EXEC SQL DECLARE sql_cursor CURSOR FOR cursor_spec;
...
void find_row(void)
{
...
hostvar = initial_value;
...
EXEC SQL OPEN sql_cursor USING :hostvar;
...
EXEC SQL FETCH sql_cursor
INTO :hostvar1, :hostvar2, :hostvar3 ;
...
... /* Process values in the host variable(s). */
...
... /* If last row has not been processed, */
/* branch back to fetch another row. */
...
EXEC SQL CLOSE sql_cursor;
...
}
...
EXEC SQL DEALLOCATE PREPARE cursor_spec;
...
C
1
2
3
4
5
6
7
8
9