If all the SQL statements are embedded in XL C programs, you can
use the XL C DB2 coprocessor to prepare the program to request DB2
services. You can either run the program through the DB2 C/C++ precompiler
before you compile, or you can specify the SQL compiler option when
you compile the program. For detailed information about using the
SQL option, refer to SQL in z/OS XL C/C++ User's Guide.
If you are compiling code with SQL in effect, refer to z/OS
Program Directory for a complete list of SQL suboptions.
When the XL C/C++ SQL(NOSTD) option is in effect, code should be
written in codepage IBM-1047 (APL)293).
The following are advantages of using the XL C/C++ DB2 coprocessor
instead of the DB2 C/C++ precompiler:
- Host variable names follow the same lexical scoping rules as C/C++
variables.
- Preprocessor directives (such as #include and #define)
are supported.
- Variable-length source input is supported.
Notes: - Typically, NOSQL is the default compiler option. If your environment
is customized to make SQL the default, be aware that the compiler
will attempt to call the API that contains DBRMLIB DD even if the
source code does not contain SQL statements. When that happens, DB2
generates a message that you can ignore.
- "SQLCODE", "SQLSTATE", and "sqlca" are not valid user host variable
names, because they are reserved by the compiler and DB2 coprocessor
as embedded SQL keywords. Previous to the compiler embedding the DB2
coprocessor, the DB2 precompiler did not recognize these three identifiers
as keywords, but the new DB2 coprocessor correctly recognizes them
and will not successfully compile any source file that attempts to
use them as user host variable names. If you are already using any
of these reserved keywords as table column names in your program (and
referencing them through identically named user host variable names),
and you are migrating from a compiler release that uses the DB2 precompiler
to one that uses the DB2 coprocessor, you must restructure your queries
in order to avoid any conflicts with these reserved keywords. For
detailed information, see the documentation available at the following
URL:
http://www.ibm.com/software/data/db2/zos/library.html