For your
JVM COBOL applications, OpenESQL provides the option of using traditional host variable declarations, and an option to use
JVM data types as your host variable declarations. Use of
JVM data types is made possible by the OpenESQL Managed Runtime, specified by setting the DBMAN directive option to
JDBC.
When your
JVM COBOL application contains traditional host variable declarations using PIC clauses, this requires the OpenESQL Managed Runtime
to read each PIC clause and convert it to the equivalent
JVM type. However, by declaring your host variables using the
JVM data types in place of the PIC clause, you get these advantages:
- Improved performance - it is not necessary for the OpenESQL Managed Runtime to translate PIC clauses to
JVM types, thereby greatly enhancing performance.
- No size restrictions -
JVM variables in
JVM COBOL applications are not restricted in size, whereas native COBOL applications have size restrictions on host variables, especially
for applications that involve LOB data.
- Improved application portability - the managed runtime simplifies the process of porting existing native EXEC SQL applications
to
JVM.
When coding your applications to use
JVM host variables, keep in mind:
Note:
- Only the OpenESQL preprocessor supports the use of
JVM host variables. Currently, no DBMS vendors provide direct support for EXEC SQL syntax in
JVM applications.
- For complete information on declaring
JVM host variables for the OpenESQL Managed Runtime, see the reference topics under
SQL Data Types.
Example: Defining
JVM host variables
*> -------------------------------------------
*> COBOL HOST VARIABLES FOR TABLE EMP
*> -------------------------------------------
01 EMP-EMPNO STRING.
01 EMP-FIRSTNME STRING.
01 EMP-MIDINIT STRING.
01 EMP-LASTNAME STRING.
01 EMP-WORKDEPT STRING.
01 EMP-PHONENO STRING.
01 EMP-HIREDATE type java.sql.Timestamp.
01 EMP-JOB STRING.
01 EMP-EDLEVEL BINARY-SHORT.
01 EMP-SEX STRING.
01 EMP-BIRTHDATE type java.sql.Timestamp.
01 EMP-SALARY DECIMAL.
01 EMP-BONUS DECIMAL.
01 EMP-COMM DECIMAL.
EXEC SQL
SELECT
A.FIRSTNME
,A.LASTNAME
,A.HIREDATE
,A.SALARY
,A.EMPNO
INTO
:EMP-FIRSTNME
,:EMP-LASTNAME
,:EMP-HIREDATE:EMP-HIREDATE-NULL
,:EMP-SALARY:EMP-SALARY-NULL
,:EMP-EMPNO
FROM HCOSQL.EMP A
WHERE (A.EMPNO = :EMP-EMPNO)
END-EXEC