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.
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 the null character (x00) into CHAR columns without changing source to use SQL
TYPE BINARY host variables.
ALLOWSERVERSELECT Passes unrecognized EXEC SQL SELECT statements through to the server, thus enabling server-specific behavior.
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 Regulates an SQL connection's autcommit attribute.
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.
CLOSE_ON_ROLLBACK Specifies whether to close cursors or leave them open for further fetches after a ROLLBACK.
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.
ERRORMAP This directive specifies the name of the error map file to use, and enables SQL error mapping.
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.
MARS Enable multiple active results sets when connecting to Microsoft SQL Server.
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.
ODBCVER This directive causes an application to register itself as an ODBC Version 2, 3.x or 3.8 application.
OPTIMIZECURSORS Optimizes memory consumption when using Oracle, PostgreSQL, DB2, or SQL Server ADO.NET providers. Also applies the same data integrity rules on all databases for embedded SQL cursors that use WITH HOLD and FOR
UPDATE clauses for both DBMAN=ODBC and DBMAN=ADO.
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.
PICXBINARY Enables programs to use PIC X(n) host variables to receive data from BINARY, VARBINARY, LONGVARBINARY columns in binary format without changing source to
use SQL TYPE BINARY host variables.
PICXBINDING Specifies the handling of fixed-length PIC X(n) host variables.
PRE Instructs the preprocessor to generate code that dynamically loads the OpenESQL module at run time.
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 Facilitates the migration of Pro*COBOL applications to OpenESQL when using DBMAN=ADO.
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.
SPTHROWEXCEPTION Improves diagnostics returned to calling applications from COBOL SQL CLR stored procedures in the case of an implicit SQL
Server rollback on a transaction.
SQLCLRTRANS Substitutes SQL Server save point operations for COMMIT and ROLLBACK when building both client applications and stored procedures.
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.
TRANSACTION This directive provides OpenESQL with specifications for managing run-time transactions and, in some cases, enabling compile-time
checking.
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.
UNSAFE_NULL Suppresses an error when a null value is returned but no null indicator has been specified.
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.
WHERECURRENT Allows PostgreSQL and MySQL to accept updateable SELECT and CURSOR statements when no positioned UPDATEs or DELETEs are required.
XAID Simplifies working with multiple XARs of the SQL Server, PostgreSQL, or generic one-phase commit for ODBC RM types defined
in a single enterprise server region.