Try OpenEdge Now
skip to main content
SQL Reference
ESQL Reference : Embedded SQL : ESQL elements and statements : BEGIN-END DECLARE SECTION
 
BEGIN-END DECLARE SECTION
Declares variables and types used by the precompiler. Any variables you refer to in an embedded SQL statement must be declared in a DECLARE SECTION. This section starts with a BEGIN DECLARE SECTION statement and ends with an END DECLARE SECTION statement. Each variable must be declared as a host language data type.

Syntax

EXEC SQL BEGIN DECLARE SECTIONhost_lang_typevariable_name ;
.
.
.
EXEC SQL END DECLARE SECTION
host_lang_type variable_name ;
A conventional C Language variable declaration. This form of variable declaration conforms to the ANSI standard for the C Language.
Uses the following syntax:
{ char | short | long | float | double }

Notes

*The C Language type int is not supported by ESQL. Type int maps to 16 or 32 bits, depending on the machine architecture. This can create rounding errors at run time, as values are passed across different machine architectures.
*Variables you declare in a BEGIN‑END DECLARE SECTION can be used in C Language statements as if they are declared outside the DECLARE SECTION.
*The scope of variables follows host language scoping rules. The ESQL variables are not visible outside the file in which they are declared.
DECLARE sections are permissible only where host language declarations are permissible in the host language syntax. This restriction is due to how DECLARE SECTION blocks are translated into the main body of host language declarations.
*Avoid DECLARE sections in header files that are included by more than one source file. This can cause duplicate variables with the same name.
*The form of the variable created by ESQL for each type is specified so that it can be manipulated from host language statements. Declaring variables allows you to use the variables in both host language and embedded SQL statements.

Example

EXEC SQL BEGIN DECLARE SECTION ;
short InvTransNum_v ;
short Qty_v ;
short OrderNum_v ;
EXEC SQL END DECLARE SECTION ;
* Authorization
* Related statement