Walks you through the process of invoking a native COBOL program using JCL, calling a SQL Server SQL CLR stored procedure
passing group structured host variables, and returning a group variable back to the calling COBOL native program.
The SQL CLR stored procedure used in this tutorial was generated using the Generate SPD File tool.
Prerequisites
- Before attempting this tutorial, you must first work through
Tutorial: Prepare the SQL CLR Environment.
- If you have not already done so, review the
Assumptions and
Before you begin a tutorial sections in the
Tutorials: HCO for SQL Server (HCOSS) topic to ensure your
Enterprise Developer environment is set up properly.
Demonstration solution - SQLCLRTutorialSPCall
The SQLCLRTutorialSPCall solution provided for this tutorial includes components of JCL, native COBOL, and SQL CLR stored
procedure code. First, a native COBOL program is invoked via JCL. The invoked program calls a SQL Server SQL CLR stored procedure
that returns data to the calling program. You build the stored procedure into a DLL that is deployed to the sample SQLCLR_Test
SQL Server database.
The solution contains three projects:
- SPCall Project
- A COBOL/JCL project that contains a native COBOL program that initiates the first call to a SQL CLR stored procedure, and
the JCL that invokes it the program.
- SPCall.jcl
- JCL script that invokes
SPCall.cbl:
RUN PROG (SPCALL) PLAN (SPCALL) LIB ('MY.DBRMLIB')
- SPCall.cbl
- Native COBOL program invoked by
SPCall.jcl, this program calls the GETHIRE program in the SQLCLRTutorial project.
exec sql
call "GETHIRE" (:EMPID INOUT, :FIRSTNAME OUT, :LASTNAME OUT, :HIREDATE OUT, :SQLXCODE OUT)
end-exec
- SQLCLRTutorial Project
- Created from the SQL Server Database project template, the SQLCLRTutorial project contains the following:
- GETHIRE.cbl
- A native COBOL program that runs the SQL Server stored procedure code. SQL Server has meta-data that identifies and loads
the assembly that contains the stored procedure.
- SQLCLRStoredProc.spd
- A file that contains stored procedure definition code.
- SQLCLRStoredProc.mssp.cbl
- SQLCLRStoredProc.mssp.cbl contains stored procedure code. At run time, SQL Server meta-data identifies the assembly containing this stored procedure
code, and then loads the assembly into the SQL Server database. The call from
GETHIRE.cbl to the stored procedure is found in this loaded assembly.
- SQLCLRTutorial.Publish Project
- Also created by default from the SQL Server Database project template, the SQLCLRTutorial.Publish project does not contain
any application code. Its purpose is to create the deployment package for the solution and to deploy it. The publishing process
creates the stored procedure that calls the into the DLL that SQL Server executes in a SQL CLR run-time environment. The SQL
CLR run time works with the COBOL run-time. Publishing includes deploying both of these run-times.
Sequence
To complete this tutorial, progress through these topics in the order presented here. The bottom of each topic provides
Next topic and
Previous topic navigational links to help you proceed in the proper sequence: