Submitted By: andrewcza
When using gpre with cobol Gpre does not always
generate the correct variable declarations.
I have attached a zip file with sample code to
duplicate and show the problem.
The Zip file contains
esql.create.ecob (The ESQL Cobol Source)
esql.create.ecob.cbl (The Generated code from GPRE)
esql.insert.ecob (The EQSL Cobol Source)
esql.insert.ecob.cbl (The Generated code from GPRE)
To Duplicate the problem run gpre as follows
gpre -co esql.create.ecob
This will Generate esql.create.ecob.cbl
Line 26 reads as follows
01 isc_1db PIC X(8) VALUE IS "demo.gdb".
But in Line 77 It is called as follows
- BY REFERENCE isc-1db, BY REFERENCE
gds__database, BY VALUE 10,
The problem is that isc-1db is NOT the same as isc_1db
and gpre needs to be fixed to resolve this problem.
As a Temporary work around in My cobol Program I am
currently doing a redefine.
Create a database called demo.gdb with a table called
CREATE TABLE FRIEND(
Then run gpre as follows
gpre -co -d demo.gdb esql.insert.ecob
This will generate esql.insert.ecob.cbl
Line 130 Reads as follows
- BY REFERENCE gds__trans, BY VALUE 1
Line 140 Reads as follows
IF gds__trans NOT = 0 AND gds__0 NOT = 0 THEN
Line 142 Reads as follows
- BY REFERENCE gds__trans, BY VALUE 0
The problem is that gds__trans is not defined anywhere.
I got around this in my Cobol program by adding a
refedine for ISC_TRANS
This problem also need to fixed.