Sunday, 4 September 2016

Delete record using CURSOR

Using below COBOL program you could fetch a particular record from database and delete it using a query;

IDENTIFICATION DIVISION.
PROGRAM-ID. DELCUR.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
                EXEC SQL
                    INCLUDE NMTAB
                END-EXEC.
                EXEC SQL
                    INCLUDE SQLCA
                END-EXEC.
PROCEDURE DIVISION.
                PERFORM 100-MAIN-PARA.
100-MAIN-PARA.
                EXEC SQL
                     DECLARE CUR CURSOR FOR
                     SELECT ID,NAME FROM NMTAB
                    WHERE ID =”ID1022” FOR UPDATE OF NMTAB
                END-EXEC.
                EXEC SQL
                    OPEN CUR
                END-EXEC.
                PERFORM 200-UPD-PARA.
                EXEC SQL
                    CLOSE CUR
                END-EXEC.
                STOP RUN.
200-UPD-PARA.
                EXEC SQL
                     FETCH CUR INTO :MID, :MNAME
                END-EXEC.
                IF MID=”ID1022”
                EXEC SQL
                  DELETE FROM NMTAB
                 WHERE CURRENT OF CUR
                END-EXEC.
                ELSE
                DISPLAY “THE RECORD IS NOT FOUND”.

In the above program we have declared a cursor CUR to select a particular record from table NMTAB. Open the cursor perform the para where the record will be deleted using the query once the record has been fetched. Once done close the cursor and stop the program.

TABLE:

ID                     NAME                 JOB
M1011                  KARTI                SOFTWARE
M1022                  RAVI                 POLICE

AFTER PROGRAM:

ID                     NAME                 JOB
M1011                  KARTI                SOFTWARE




No comments:

Post a Comment

Expense Handler Application with advance technologies

Budget Planner  One of the application developed with Ionic 4 and Python-Flask.  Ionic 4 code:  https://github.com/logeshbuiltin/Expense...