IDENTIFICATION DIVISION.
PROGRAM-ID. LDB2SAMP.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL INCLUDE SQLCA END-EXEC.
COPY EMPLOYEE.
01 VARIABLES.
02 RECORDCOUNT PIC S9(8) USAGE COMP-3.
02 DISPLAYRC PIC S9(4) USAGE DISPLAY.
02 OUT PIC X(200).
02 NEXTEMP PIC X(6).
02 NEXTEMPNO PIC 9(6).
02 FIRSTNMEP PIC X(12).
02 LASTNAMEP PIC X(15).
LINKAGE SECTION.
PROCEDURE DIVISION.
MOVE LOW-VALUES TO VARIABLES.
EXEC SQL CONNECT TO SAMPLE END-EXEC.
EXEC SQL SELECT COUNT (*)
INTO :RECORDCOUNT
FROM EMPLOYEE
END-EXEC.
IF SQLCODE = 0 THEN
MOVE RECORDCOUNT TO DISPLAYRC
MOVE "THE NUMBER OF EMPLOYEES IN THE DATABASE IS " TO OUT
MOVE DISPLAYRC TO OUT(44:4)
ELSE IF SQLCODE = 100 THEN
MOVE "NO EMPLOYEES FOUND IN DATABASE" TO OUT
ELSE
MOVE "SQL ERROR " TO OUT
MOVE SQLCODE TO OUT(11:10)
END-IF.
DISPLAY OUT.
IF SQLCODE = 0 THEN
EXEC SQL SELECT MAX (EMPNO)
INTO :NEXTEMP
FROM EMPLOYEE
END-EXEC
MOVE NEXTEMP TO NEXTEMPNO
COMPUTE NEXTEMPNO = NEXTEMPNO + 10
MOVE NEXTEMPNO TO EMPNO
MOVE "FRANK" TO FIRSTNMEP
MOVE "JONES" TO LASTNAMEP
MOVE "Y" TO MIDINIT
MOVE "A00" TO WORKDEPT
MOVE "1234" TO PHONENO
MOVE "04-30-1979" TO HIREDATE
MOVE "Clerk" TO JOB
MOVE 15 TO EDLEVEL
MOVE "M" TO SEX
MOVE "05-30-1954" TO BIRTHDATE
MOVE "36170" TO SALARY
MOVE "400" TO BONUS
MOVE "2387" TO COMM
EXEC SQL INSERT INTO EMPLOYEE
VALUES(:EMPNO,
:FIRSTNMEP,
:MIDINIT,
:LASTNAMEP,
:WORKDEPT,
:PHONENO,
:HIREDATE,
:JOB,
:EDLEVEL,
:SEX,
:BIRTHDATE,
:SALARY,
:BONUS,
:COMM)
END-EXEC
IF SQLCODE = 0 THEN
EXEC SQL SELECT *
INTO :EMPNO,
:FIRSTNME,
:MIDINIT,
:LASTNAME,
:WORKDEPT,
:PHONENO,
:HIREDATE,
:JOB,
:EDLEVEL,
:SEX,
:BIRTHDATE,
:SALARY,
:BONUS,
:COMM
FROM EMPLOYEE
WHERE EMPNO = :EMPNO
END-EXEC
EXEC SQL COMMIT END-EXEC
MOVE FIRSTNMEP TO OUT
MOVE LASTNAMEP TO OUT(14:15)
DISPLAY OUT
DISPLAY "ADDED TO THE DATABASE"
ELSE
MOVE "SQL ERROR" TO OUT
DISPLAY OUT
END-IF
END-IF.
GOBACK.