home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l360 / 3.ddi / SQLDEMO.@EM / SQLPREP.CBL < prev   
Encoding:
Text File  |  1991-04-08  |  3.8 KB  |  98 lines

  1.       $set ans85 mf noosvs
  2.       ************************************************************
  3.       *                                                          *
  4.       *              (C) Micro Focus Ltd. 1989                   *
  5.       *                                                          *
  6.       *                     SQLPREP.CBL                          *
  7.       *                                                          *
  8.       *    This program sets up the environment for SQLDEMO.CBL. *
  9.       *    Both programs demonstrate the use of SQL from within  *
  10.       *    a COBOL program.                                      *
  11.       *                                                          *
  12.       ************************************************************
  13.       * This program should be run before sqldemo. It creates
  14.       * the database objects needed by sqldemo. sqldemo cannot
  15.       * create then use the object, since, at compile time, the
  16.       * object will not exist. Hence, any references to the
  17.       * object will be invalid.
  18.       ************************************************************
  19.        working-storage section.
  20.        01 y-or-n              pic x value "n".
  21.        78 object-exists value -601.
  22.  
  23.       *SQL error code for database object exists
  24.        01 created-var         pic x value "n".
  25.          88 created           value "y".
  26.  
  27.        exec sql include sqlca end-exec
  28.  
  29.        procedure division.
  30.            perform until created
  31.                exec sql
  32.                    create view people_loc as
  33.                    select name,location
  34.                    from staff,org
  35.                    where dept=deptnumb
  36.                end-exec
  37.                if not (sqlcode = object-exists or zero)
  38.                    perform sql-error
  39.                end-if
  40.                if sqlcode = object-exists
  41.                    display
  42.            "View PEOPLE_LOC exists in DB, Delete it and re-create Y/[N]"
  43.                    accept y-or-n
  44.                    if y-or-n = "y" or "Y"
  45.                        exec sql
  46.                            drop view people_loc
  47.                        end-exec
  48.                        if sqlcode = zero
  49.                            move "n" to created-var
  50.                        else
  51.                            perform sql-error
  52.                        end-if
  53.                    else
  54.                        move "y" to created-var
  55.                    end-if
  56.                else
  57.                    move "y" to created-var
  58.                end-if
  59.            end-perform
  60.  
  61.       *Now create table mf_table
  62.            move "n" to created-var
  63.            perform until created
  64.                exec sql
  65.                    create table mf_table
  66.                       (name           char(9),
  67.                        car            char(20),
  68.                        nto60           decimal(3,1))
  69.                end-exec
  70.                if not (sqlcode = object-exists or zero)
  71.                    perform sql-error
  72.                end-if
  73.                if sqlcode = object-exists
  74.                    display
  75.            "Table MF_TABLE exists in DB, Delete it and re-create Y/[N]"
  76.                    accept y-or-n
  77.                    if y-or-n = "y" or "Y"
  78.                        exec sql
  79.                            drop table mf_table
  80.                        end-exec
  81.                        if sqlcode = zero
  82.                            move "n" to created-var
  83.                        else
  84.                            perform sql-error
  85.                        end-if
  86.                    else
  87.                        move "y" to created-var
  88.                    end-if
  89.                else
  90.                    move "y" to created-var
  91.                end-if
  92.            end-perform
  93.            stop run.
  94.  
  95.        sql-error.
  96.            display "SQL error SQLCODE="sqlcode
  97.            stop run.
  98.