open (dynamic cursor)

Description

Opens a previously declared dynamic cursor.

Syntax

exec sql [at connection_name] open cursor_name
[row_count = size] [using {host_var_list |
 descriptor descriptor_name | 
 sql descriptor descriptor_name}] end-exec

Parameters

cursor_name

Names a cursor that has been declared using the declare cursor statement.

size

The number of rows moved in a network roundtrip, not the number fetched into the host variable. The size argument can be either a literal or a declared host variable.

host_var_list

Names the host variables that contain the values for dynamic parameter markers.

descriptor

Identifies descriptor_name as a SQLDA structure.

sql descriptor

Identifies descriptor_name as a SQL descriptor.

descriptor_name

Names the dynamic descriptor that contains information about the dynamic parameter markers in a prepared statement.

Examples

Example 1

 EXEC SQL BEGIN DECLARE SECTION END-EXEC.
            01     DYNABUF     PIC X(200).
            01     TITLE-ID    PIC X(6).
            01     LNAME       PIC X(15).
            01     FNAME       PIC X(15).
            01     PHONE       PIC X(15).
       EXEC SQL END DECLARE SECTION END-EXEC.
  
            ...
  
       MOVE "SELECT a.au_lname, a.au_fname, a.phone
                 FROM authors a, titleauthor t
                 WHERE a.au_id = t.au_id
                 AND   t.title_id = ? " TO DYNABUF.
  
       EXEC SQL PREPARE dynastmt FROM :DYNABUF END-EXEC.
       EXEC SQL DECLARE who_wrote CURSOR FOR dynastmt END-EXEC.
  
       DISPLAY "LIST AUTHORS FOR WHAT TITLE ? "
       ACCEPT TITLE-ID.
  
       EXEC SQL OPEN who_wrote USING :TITLE-ID END-EXEC.
       PERFORM FETCH-LOOP UNTIL SQLCODE = 100.
       EXEC SQL CLOSE who_wrote END-EXEC.
       EXEC SQL DEALLOCATE CURSOR who_wrote END-EXEC.
       EXEC SQL DEALLOCATE dynastmt END-EXEC.
  
            ...
  
  
       FETCH-LOOP.
  EXEC SQL FETCH who_wrote INTO
                  :LNAME, :FNAME, :PHONE END-EXEC
            DISPLAY "LAST  NAME : ", LNAME
            DISPLAY "FIRST NAME : ", FNAME
            DISPLAY "PHONE         : ", PHONE.
       END-FETCH-LOOP.

Usage

See also

close, declare, fetch, prepare