Note: SQL compiler directives for HCOSS are located under the
SQL Compiler Directive Options - HCOSS topic in the
HCO for SQL Server (HCOSS) section of this documentation.
ACCESS Enables deployment of application code and SQL by updating the SQL Server database at compile time.
ALLOWNULLCHAR Allows programs to use PIC X(n) host variables, and to select/insert/update the null character (x00) into CHAR columns without changing source to use SQL
TYPE BINARY host variables.
ANSI92ENTRY If this is set, OpenESQL conforms to the SQL ANSI'92 entry level standard.
ARRAYCHECK Checks to ensure that indicator variable arrays match up correctly with host array variables.
AUTOCOMMIT When set, each SQL statement is treated as a separate transaction and is committed immediately upon execution. If this is
not set, and the ODBC driver you are using supports transactions, statements must be explicitly committed (or rolled back)
as part of a transaction.
AUTOFETCH Sets the AUTOFETCH attribute on SELECT statements that are run on Microsoft SQL Server data sources. Compiling with this directive
can help the performance of your application. This directive works only if the program is also compiled with directive SQL(TARGETDB=MSSQLSERVER).
It also serves as a primitive directive for the BEHAVIOR directive option.
BEHAVIOR Instructs OpenESQL to properly match your COBOL cursors with the database you are using, thus maximizing database cursor performance.
BEHAVIOR makes use of multiple primitive directives and associates a default value for each primitive directive depending
on the target DBMS. You can also override the default setting of any primitive directive.
BIND Enables deployment of application code by generating an SQL batch script that can be used with sqlcmd or SQL Server Management Studio to update the SQL Server database. Compiled OpenESQL code issues a call to SQL Server stored procedures, contained in the SQL batch script.
CHECK Sends each SQL statement to the database at compilation time.
CHECKDUPCURSOR Instructs OpenESQL to determine if the cursor has been opened twice, and if so takes action accordingly.
CHECKSINGLETON Instructs OpenESQL to check if singleton SELECTs return more than one row when executed.
CLOSE_ON_COMMIT Specifies whether to close cursors not defined WITH HOLD or leave them open for further fetches after a COMMIT.
CONCAT Specifies the ASCII character code to use for the CONCAT symbol (|). Use this directive only if you need to change the default.
CONNECTIONPOOL Enables use of ODBC 3.0 connection pooling. When a connection is closed, the Driver Manager actually keeps it alive for a
timeout period, and saves the overhead of re-establishing a connection from scratch if the application re-opens an identical
connection. ODBC allows you to choose between having a pooling for an ODBC environment or for each driver. See your ODBC documentation
for details.
CTRACE Causes debug information to be put into the file sqltrace.txt.
CURSORCASE If ESQLVERSION is 2.0, CURSORCASE is implied. NOCURSORCASE means that cursor names are not case sensitive. CURSORCASE means
that they are case sensitive. Note that in previous versions of OpenESQL, cursor names have been case sensitive.
DATE Specifies the explicit date format to use when date values are returned from database date columns into character output host
variables.
DATEDELIM Specifies a single character as the delimiter between the year, month, and day components to override the default delimiter
determined by the DATE directive specification, or implicitly based on default ISO 8601 format (yyyy-mm-dd).
DB Identifies a data source that defines database connection information.
DBMAN Specifies the preprocessor to use. This directive is not required when compiling programs with OpenESQL.
DECDEL Specifies the decimal delimiter to use for decimal variables.
DESCRIBEDTCHAR When using dynamic SQL, described or prepared SQL statements with DATE, TIME, and DATETIME columns are suitable for PIC X(n) character host variables or DATE, TIME, and TIMESTAMP SQL TYPEs.
DESCRIBEDTREC When using dynamic SQL, described or prepared SQL statements with DATE, TIME, and DATETIME, columns are suitable for the
DATE, TIME, and TIMESTAMP-RECORD SQL TYPEs in ODBC format record structures.
DESCRIBEVARCHAR49 When using dynamic SQL, described or prepared SQL statements with VARCHAR, columns are suitable for VARCHAR host variables
with level 49 sub-fields for length and data.
DESCRIBEVARCHARPICX When using dynamic SQL, described or prepared SQL statements with VARCHAR, columns are suitable for PIC X host variables.
DETECTDATE Allows datetime values for PIC X character input host variables in an OpenESQL application to be in different formats than
the standard ISO 8601 formats.
FIPSFLAG Enables FIPS flagging (NIST certification requirement only).
GEN-CC2 Generates ESQL API calls using call convention 2 instead of call convention 74.
GEN-CLASS-VAR Enables backward compatibility with OO SQL COBOL programs migrated from Net Express, and instructs the OpenESQL preprocessor
to generate SQL interface variables at the end of object storage in addition to the end of local storage.
GEN-HV-FROM-GROUP Generates host variables for all elementary data items when a multiple-level group variable is used in a FETCH or singleton
SELECT SQL statement.
GEN-INIT-FLAG Generates the SQL-INIT-FLAG variable for DB2 for OS/390 compatibility. The flag is updated when the SQL environment is initialized.
If you define this variable in your application, compile your application with this directive set to NOGEN-INIT-FLAG and the
variable will not be generated by the precompiler.
GEN-SQLCA Generates an SQLCA equivalent to coding an EXEC SQL INCLUDE SQLCA statement in an application program.
HSFTRACE Generates calls around each SQL statement to the HSF trace routine if the application is running under Enterprise Server. In some cases, the application must be linked with mfsqlSMF.lib.
IGNORE-NESTED In nested programs, this is the program-id at which to start generating the database interface code. If the program file name
matches the program-id, you can just specify IGNORE-NESTED.
IGNORESCHEMAERRORS Suppresses compile-time errors resulting from missing schema objects.
INIT When set without parameters, the preprocessor automatically generates code to make the connection to the database. When set
with the PROT parameter, protects the database when an application terminates abnormally.
ISOLATION This directive specifies the isolation level that OpenESQL uses as a connection attribute. It also serves as a primitive directive
for the BEHAVIOR directive option.
JIT Generate OpenESQL interface code only if an EXEC SQL statement is found in the procedure division.
JNDI Enables you to specify a JNDI class to use to look up the connection string for the data source name specified in the EXEC
SQL CONNECT statements, or at compile time as specified by the SQL(DB) compiler directive if the SQL(CHECK) compiler directive
is also specified.
JNDIENC Enables applications to use the JNDI Environment Naming Context (ENC) when looking up JDBC data source names using JNDI.
MARS Enable multiple active results sets when connecting to an Microsoft SQL Server 2005 or later.
NIST Sets OpenESQL to conform to the NIST interpretation of the SQL ANSI 92 entry level standard.
NOT Specifies the character code to use for NOT symbol (¬). Use this only if you need to change the default setting.
ODBCTRACE ODBCTRACE=USER enables you to control ODBC tracing via the ODBC control panel (Windows) or odbc.ini (UNIX) from which you can specify the file that the trace goes into.
ODBCV3 This directive causes an application to register itself as an ODBC Version 3 application.
OPTIMIZECURSORS Optimizes memory consumption when using Oracle, PostgreSQL, or DB2 providers. Also applies the same data integrity rules on all databases for embedded SQL cursors that use WITH HOLD and
FOR UPDATE clauses for DBMAN=ODBC.
OPTPER Causes the OpenESQL preprocessor to optimize the performance of CHARSET"EBCDIC" processing.
PARAMARRAY If PARAMARRAY is set, ODBC array binding is used, if it is supported by the ODBC driver, for all input parameters.
PASS The login to use to connect to the data source. This option works in conjunction with the INIT and/or CHECK options.
PICXBINDING Specifies the handling of fixed-length input host variables.
PRE PRE causes the preprocessor to generate code to load the OpenESQL runtime module (odbcrw32.dll) dynamically at runtime. This conflicts with the LITLINK compiler directive. So if you use LITLINK, specify NOPRE to stop
the dynamic loading code being generated. In this case, you must add odbcrw32.lib to the list of LIBs to be linked in your build settings. Then the linker generates code into the executable which causes
the operating system to load odbcrw32.dll implicitly when the executable is loaded.
PREFETCH An application can use this directive to request that OpenESQL use block fetches for cursors. This can provide performance
benefits, similar to array fetching, without having to change program logic. The performance benefit depends on the value
of n and on whether the ODBC driver in use is already configured to use prefetching.
QUALFIX Causes the OpenESQL preprocessor to append three characters to the name of the host variables when declaring them to SQL.
This ensures problems caused by qualification (where two or more host variables have identical names when not qualified) are
avoided but has the side-effect that SQL error messages sometimes display the names of host variables with the three additional
characters appended to them.
RESULTARRAY If RESULTARRAY is set, ODBC array binding is used, if it is supported by the ODBC driver, for all output parameters.
SAVE-RETURN-CODE Specifies whether or not to save and then restore RETURN-CODE.
SPDISPLAY Determines where COBOL DISPLAY information can be accessed.
STMTCACHE The number of prepared SQL statements OpenESQL can cache such that the statements never again require preparation during a
program run, thus improving performance.
TARGETDB Set this directive if you want to optimize performance for a specific data source.
TESTSQLSTATE Instructs OpenESQL to generate code that tests SQLSTATE rather than SQLCODE after an SQL statement is executed.
THREAD Specifies the handling of threads with regard to connections.
TIME Specifies an explicit time format to use when time values are returned from database time columns into character output host
variables.
TIMEDELIM Specifies a single character as the delimiter between the hour, minute, and second components to override the default delimiter
determined by the TIME directive specification, or implicitly based on default ISO 8601 format (hh:mm:ss).
TRACELEVEL Produces a statistical analysis of application behavior by tracing certain operations in native applications. The report produced
by this directive provides better readability and is inherently more useful than a traditional ODBC trace.
TSTAMPSEP Specifies a single character to use as the separator between the date and time parts when datetime values are returned from
database datetime columns into character output host variables.
USECURLIB Controls use of the ODBC's Cursor Library.
USER-SQLDA Eliminates invalid host variable compiler errors for applications that contain an SQLDA rather than including it using the
COPY SQLDA statement.
XAID Simplifies working with multiple XARs of the SQL Server or generic one-phase commit for ODBC RM types defined in a single
enterprise server region.