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.
ADOPICXISANSI
Instructs OpenESQL to pass string and character variables as ANSI.
ALLOWNULLCHAR
Allows programs to use PIC X(n) host variables, and to select/insert/update hexadecimal characters in 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.
CHECK
Sends each SQL statement to the DB2 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. If this is the case, OpenESQL returns SQLCODE -811. If NOCHECKSINGLETON is specified, OpenESQL returns SQLCODE 0.
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
DATE, TIME, and DATETIME columns are suitable for PIC X(n) character host variables or DATE, TIME, and TIMESTAMP SQL TYPEs.
DESCRIBEDTREC
DATE, TIME, and DATETIME columns are suitable for the DATE, TIME, and TIMESTAMP-RECORD SQL TYPEs in ODBC format record structures.
DESCRIBEVARCHAR49
VARCHAR columns are suitable for VARCHAR host variables with level 49 sub-fields for length and data.
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.
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.
MARS
Enable multiple active results sets when connecting to an Microsoft SQL Server 2005 or later. To use this directive, you must also specify TARGETDB=MSSQLSERVER.
NESTEDCLRDEBUG
Enables debugging of nested stored procedure calls. Without this parameter, it is not possible to debug stored procedures that return result sets. This is due to limitations in the Microsoft SQL Common Language Runtime. NESTEDCLRDEBUG instructs the preprocessor to discard any result sets returned from nested stored procedure calls, thus making debugging possible.
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 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.
OPTIMIZESPCURSORS
For SQL CLR stored procedures, opens forward read-only cursors as firehose cursors, and when subsequent cursors are opened, reads the remainder of the result set into memory to optimize performance.
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.
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.
PROCOB
Sets the DATE SQL compiler directive option to EXTERNAL.
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.
SPCOMMITONRETURN
Commits work done by a stored procedure when it returns to the calling application.
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.