SQL/MX Programming Manual for C and COBOL (H06.10+, J06.03+)
C/C++ Program Compilation
HP NonStop SQL/MX Programming Manual for C and COBOL—544617-003
15-13
Preprocessor Functions
name. The C/C++ comment must use only one line and must immediately precede the
SQL statement.
For example, this comment names the SQL statement (INSERT) and provides
comment text (“insert ten rows”):
/* SQL statement_name= INSERT insert ten rows */
EXEC SQL INSERT INTO ...;
If you do not specify a name for an SQL statement, the preprocessor assigns the
statement a name of the form SQLMX_DEFAULT_STATEMENT_n, where n is an integer
incremented by the preprocessor.
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-1.
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-21.
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.










