  | 
»  | 
 | 
  
 | 
 | 
The OPEN statement is used in an application program or a procedure to open
a cursor, that is, make the cursor and its associated active
set available to manipulate a query result.
 Scope |    |  
 Application Programs and Procedures Only
 SQL Syntax |    |  
 OPEN    CursorName  [KEEP CURSOR [ WITH LOCKS      WITH NOLOCKS ]] [USING {[SQL]  DESCRIPTOR  { SQLDA      AreaName }  HostVariableName  [ [INDICATOR] :IndicatorVariable ]   [,...]  } ] Parameters |    |  
 - CursorName
 
specifies the cursor to be opened. The cursor name must first be
defined with a DECLARE CURSOR statement.
 - KEEP CURSOR
 
maintains the cursor position across transactions until a CLOSE
statement is issued on the cursor.
 This clause is not available for procedure cursors (those declared for
an EXECUTE PROCEDURE statement).
 - WITH LOCKS
 
keeps only those locks associated with the position of the kept
cursor after a COMMIT WORK statement, and releases all other locks.  This is the
default.
 - WITH NOLOCKS
 
releases all
locks associated with the kept cursor after a COMMIT WORK statement.
 - USING
 allows dynamic parameter substitution in a prepared statement.
This clause can only be specified within an application when opening a cursor 
on a dynamically
prepared SELECT or EXECUTE PROCEDURE statement.
 - SQL DESCRIPTOR
 specifies a location that at run time
contains the data value assigned to an input dynamic parameter 
specified in a prepared SELECT or EXECUTE PROCEDURE statement.
 Specify the same location (SQLDA or AreaName) as you specified in the DESCRIBE INPUT statement.
 - SQLDA
 specifies that a data structure of sqlda_type named sqlda
is used to pass dynamic parameter data between the application
and ALLBASE/SQL.
 - AreaName
 specifies the user defined name of a data structure of
type sqlda_type that is used to pass dynamic parameter data
between the application and ALLBASE/SQL.
 - HostVariableName
 specifies a host variable name that at run time
contains the data value that is assigned to an input dynamic parameter 
specified in the  parameter list of a prepared SELECT or 
EXECUTE PROCEDURE statement.
 Host variables must be specified in the same order as the dynamic
parameters in the prepared statement they represent.
There must be a one to one correspondence between host variable names and the dynamic parameters.  A maximum of 1023 host variables names can be specified.  
 - IndicatorVariable
 
names an indicator variable, whose value
determines whether the associated host variable contains a NULL value:
 - > = 0
 the value is not NULL
 - < 0
 the value is NULL
 
  
 Description |    |  
 For a select cursor, ALLBASE/SQL examines any input host variables and
input dynamic parameters used in
the cursor definition, determines the cursor's active
set, positions the cursor before the first row of the
active set, and leaves the cursor in the open state.
No rows are actually available to your
application program until a FETCH statement is executed.
 For a procedure cursor, ALLBASE/SQL examines any input host variables and 
input dynamic parameters used in the cursor definition.
No rows are actually available to your
application program, nor does procedure execution begin, until ADVANCE and/or
FETCH statements are executed.
 For a select cursor, the KEEP CURSOR
option lets you maintain the cursor position in an
active set beyond transaction boundaries.
When you use this option, the COMMIT WORK
and ROLLBACK WORK statements do not automatically close the
cursor.  Instead, you must explicitly close the cursor and then issue a 
COMMIT WORK.
 Cursors not using the KEEP CURSOR option are automatically closed when a 
transaction terminates or a ROLLBACK WORK TO SAVEPOINT is executed.
 
  
 |