SQL/MX 3.1 Programming Manual for C and COBOL (H06.23+, J06.12+)

C/C++ Program Compilation
HP NonStop SQL/MX Release 3.1 Programming Manual for C and COBOL663854-001
15-16
Preprocessor Functions
Host Variable Declarations
The preprocessor checks each host variable declaration (that is, a variable declared
between BEGIN DECLARE SECTION and END DECLARE SECTION) to ensure that
the variable uses a valid data type. For valid host-variable data types, see Table 3-1 on
page 3-8 and Table 3-4 on page 3-10.
The preprocessor parses INVOKE as a valid embedded SQL statement within a host
variable declaration section. The preprocessor returns an error for embedded SQL
statements that are not valid within a host-variable declaration section.
SQLSTATE must be declared within a Declare Section. See Declaring SQLSTATE on
page 13-2.
Floating-Point Format
In SQL/MX Release 2.x, the preprocessor operates in ANSI IEEE floating-point format.
In previous releases, the preprocessor used Tandem floating-point format. If you have
applications that use floating-point data types and host variables, see Assigning
Floating-Point Data Types on page 3-22.
Executable SQL Statements
The preprocessor performs these functions:
Scans the statement for host variables (indicated by a colon) and ensures that
each host variable is declared within the current scope of the program.
Converts the SQL statement to a C comment in the C/C++ annotated source file.
Writes the appropriate CLI procedure call or calls for the SQL statement
immediately after the commented statement in the C/C++ annotated source file. At
run time, the calls invoke the SQL/MX executor to execute the procedure for the
SQL statement within the module.
Writes the executable SQL statement to a separate module definition file if you use
the -x or -m preprocessor option or set the
SQLMX_PREPROCESSOR_VERSION=800 environment variable.
Use the preprocessor to embed SQL anywhere in the C/C++ source file. However, the
preprocessor determines in which part of the source file the embedded SQL is located
and issues warnings if an embedded SQL statement is not placed correctly. See
Placement of SQL Statements
on page 2-2.
At the end of processing the embedded SQL C/C++ source file, the preprocessor
checks the status of static cursors:
Cursors accessed and not opened return an error message.
Cursors declared and not accessed return a warning message.