View previous topic :: View next topic
|
Author |
Message |
purushoth_jp
New User
Joined: 12 Dec 2004 Posts: 22
|
|
|
|
hi all
iam embeding DB2 in cobol program. i have pasted the program here.
ID DIVISION.
PROGRAM-ID. KANINS.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE KANDCL
END-EXEC.
PROCEDURE DIVISION.
MP.
ACCEPT WS-NAME.
Accept ws-empid.
EXEC SQL
INSERT INTO jpk98.KAN1 (NAME, EMPID)
VALUES (:WS-NAME, :WS-EMPID)
END-EXEC.
STOP RUN.
DCL Gen
=====
EXEC SQL DECLARE JPK98.KAN1 TABLE
( NAME CHAR(20),
EMPID INTEGER
) END-EXEC.
******************************************************************
* COBOL DECLARATION FOR TABLE LEM0U98.KAN1 *
******************************************************************
01 WS-EMP.
* *************************************************************
* NAME
10 WS-NAME PIC X(20).
* *************************************************************
* EMPID
10 WS-EMPID PIC S9(9) USAGE COMP.
******************************************************************
* INDICATOR VARIABLE STRUCTURE *
******************************************************************
01 IKAN1.
10 INDSTRUC PIC S9(4) USAGE COMP OCCURS 2 TIMES.
******************************************************************
* THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 2 *
******************************************************************
error is
116 IGYPA3018-S Identifier "WS-EMPID (BINARY INTEGER)" was used in an "ACCEPT" statement. The statement was discarded.
can anyone tell me how to overcome this |
|
Back to top |
|
|
ovreddy
Active User
Joined: 06 Dec 2004 Posts: 211 Location: Keane Inc., Minneapolis USA.
|
|
|
|
Hi,
This is due to COMP usage only. You can change it as X(9) because we are not going to do anything with EMPNO. change this in DCLGEN output. We have another way declare a WS variable as PIC X(9) accept this and move value to :ws-empno. Then also this problem will be solved.
Even another way exists but its too lengthy if we go for that it looks crazy. so select any one of the above methods.
Bye,
Reddy. |
|
Back to top |
|
|
haiardhan
New User
Joined: 26 Jul 2008 Posts: 7 Location: india
|
|
|
|
FOR THIS IGYPA3018-S ENG--ERROR
REASON---YOU ARE DECLARED A VARIABLE IN DB2 AS INTEGER /SMALLINT
LIKE
CREATE TABLE TAB1(NO INT, ENGNAME CHAR(10));
WHILE IN HOST VARIABLES IN DCLGEN
THE DECLARATION WILL BEL LIKE
:HS-ENGNO PIC S9(9) USAGE COMP:
ANS>>>>>.
FOR THIS WE NEED TO DECLARE A VARIABLE IN WORKING -STORAGE SECTION .
AND AGAIN WE NEED TO MOVE THAT VARIABLE ACCEPTED VALUE INTO
THE HOST VARIABLE VALUE(DCLGEN VARIABLE)
WORKING-STORAGE SECTION
01 WS-ENGNO PIC S9(9).
PROCEDURE DIVISION.
ACCEPT WS-ENGNO.
MOVE WS-ENGNO TO HS-WS-ENGNO.
ACCEPT HS-WS-NAME. |
|
Back to top |
|
|
haiardhan
New User
Joined: 26 Jul 2008 Posts: 7 Location: india
|
|
|
|
ID DIVISION.
PROGRAM-ID. KANINS.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE KANDCL
END-EXEC.
PROCEDURE DIVISION.
MP.
ACCEPT WS-NAME.
Accept ws-empid.
EXEC SQL
INSERT INTO jpk98.KAN1 (NAME, EMPID)
VALUES (:WS-NAME, :WS-EMPID)
END-EXEC.
STOP RUN.
DCL Gen
=====
EXEC SQL DECLARE JPK98.KAN1 TABLE
( NAME CHAR(20),
EMPID INTEGER
) END-EXEC.
******************************************************************
* COBOL DECLARATION FOR TABLE LEM0U98.KAN1 *
******************************************************************
01 WS-EMP.
* *************************************************************
* NAME
10 WS-NAME PIC X(20).
* *************************************************************
* EMPID
10 WS-EMPID PIC S9(9) USAGE COMP.
******************************************************************
* INDICATOR VARIABLE STRUCTURE *
******************************************************************
01 IKAN1.
10 INDSTRUC PIC S9(4) USAGE COMP OCCURS 2 TIMES.
******************************************************************
* THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 2 *
******************************************************************
error is
116 IGYPA3018-S Identifier "WS-EMPID (BINARY INTEGER)" was used in an "ACCEPT" statement. The statement was discarded.
FOR THE ABOVE PROBLEM
YOU NEED CHANGE THE ACCEPT STATMENT LIKE THIS..............................
ID DIVISION.
PROGRAM-ID. KANINS.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TEMP-EMPID PIC S9(9) COMP.------........OR 77 TEMP-EMPID PIC S9(9).
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE KANDCL
END-EXEC.
PROCEDURE DIVISION.
MP.
ACCEPT WS-NAME.
Accept TEMP-empid.
MOVE TEMP-EMPID TO WS-EMPID.
EXEC SQL
INSERT INTO jpk98.KAN1 (NAME, EMPID)
VALUES (:WS-NAME, :WS-EMPID)
END-EXEC.
STOP RUN. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
same comment ....
why resurrect a four year old topic ?? |
|
Back to top |
|
|
Terry Heinze
JCL Moderator
Joined: 14 Jul 2008 Posts: 1249 Location: Richfield, MN, USA
|
|
Back to top |
|
|
|