HPlogo ALLBASE/SQL Reference Manual: HP 9000 Computer Systems > Chapter 11 SQL Statements E - R

OPEN

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

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.

Feedback to webmaster