home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Product / Product.zip / DBDEMO.ZIP / DEMODB.ZIP / D30ABBC1.SQB < prev    next >
Text File  |  1989-10-31  |  31KB  |  783 lines

  1.       ******************************************IBM CONFIDENTIAL*******
  2.       *                                                               *
  3.       *   APPLICATION PROGRAM NAME:  D30ABBC1.SQB OF D30ABB01         *
  4.       *                                                               *
  5.       *   PROGRAM LANGUAGE: COBOL PROGRAMMING LANGUAGE Version 1.00   *
  6.       *                                                               *
  7.       *   PROGRAM DESCRIPTION: This program creates several views     *
  8.       *         using the BANK Database tables.  After the views are  *
  9.       *         created, the data for the tables is imported through  *
  10.       *         engine.  The Signal Handler is installed.             *
  11.       *                                                               *
  12.       *   AUTHOR:  John A. Vargus          DATE:  02/02/89            *
  13.       *                                                               *
  14.       *   AUTHORITY:                                                  *
  15.       *      USERID:USERID                                            *
  16.       *      PASSWORD:PASSWORD                                        *
  17.       *                                                               *
  18.       *   DATABASE:  Shelby BANK Database                             *
  19.       *              Tables:  Customer/Box/Loan/Debits/Credits        *
  20.       *                       Savings/Checking                        *
  21.       *                                                               *
  22.       *   OUTPUT FILES: ERRFIL - This file is created, on disk, when  *
  23.       *                 some type of error condition is returned from *
  24.       *                 SQL.  In the error file, the sqlcode will     *
  25.       *                 be recorded, its corresponding error message, *
  26.       *                 and the procedure which failed.               *
  27.       *                                                               *
  28.       *   DEPENDENCIES:                                               *
  29.       *         OS/2 EE REL 1.2.                                      *
  30.       *         ENGINE                                                *
  31.       *         SQLCA.CBL (current directory).                        *
  32.       *         IBM COBOL/2 VERSION 1.00                              *
  33.       *                                                               *
  34.       *   FUNCTION CALLS:                                             *
  35.       *              "__SQLGISIG"                                     *
  36.       *              "__SQLGSTRD"                                     *
  37.       *              "__SQLGREST"                                     *
  38.       *              "__SQLGIMP"                                      *
  39.       *                                                               *
  40.       *   EMBEDDED SQL:                                               *
  41.       *         Create view                                           *
  42.       *         Select/From/Where                                     *
  43.       *         Execpt                                                *
  44.       *         Intersect                                             *
  45.       *         Commit                                                *
  46.       *         Union                                                 *
  47.       *         RollBack Work                                         *
  48.       *                                                               *
  49.       *   ERROR CONDITIONS:                                           *
  50.       *                                                               *
  51.       *                                                               *
  52.       *   MODIFICATIONS:                                              *
  53.       *        Date        Author        Description                  *
  54.       *                                                               *
  55.       ***********************End of Prologue***************************
  56.       *****************************************************
  57.        Identification Division.
  58.          Program-id.  D30ABBC1.SQB.
  59.          Author. John Vargus.
  60.          Installation.
  61.          Date-written. March 3,1988.
  62.          Date-compiled. March 3,1988.
  63.          Security. None.
  64.       *****************************************************
  65.        Environment Division.
  66.       ****************************************************
  67.          Configuration section.
  68.          Source-computer.  PCAT.
  69.          Object-computer.  PCAT.
  70.          Special-names.
  71.          File-Control.
  72.             select errfil
  73.               assign to disk.
  74.       *****************************************************
  75.        Data Division.
  76.       ***********************Begin file control************
  77.        File section.
  78.       *---------------------------------------------------
  79.        FD  errfil
  80.                record contains 80 characters
  81.                label records are omitted
  82.                data record is line-out.
  83.        01 line-out  pic x(80).
  84.       ***********************Begin Working-Storage Section*
  85.        Working-storage section.
  86.       *----------------------------------------------------
  87.       *         Parameter declarations
  88.       *----------------------------------------------------
  89.        77 database             pic x(5) value "BANK".
  90.        77 db-length            pic 9(4) comp-5 value 4.
  91.        77 d-use                pic 9(4) comp-5.
  92.        77 u                    pic x redefines d-use.
  93.        77 count-d              pic 9(4) comp-5 value 2.
  94.        77 spare1               pic 9(4) comp-5 value 0.
  95.        77 spare2               pointer.
  96.        77 buffer-size          pic 9(4) comp-5 value 512.
  97.        77 buffer               pic x(512).
  98.        77 line-width           pic 9(4) comp-5 value 80.
  99.       *----------------------------------------------------
  100.        copy "c:\sqllib\sqlca.cbl".
  101.        copy "c:\sqllib\sqlutil.cbl".
  102.        copy "c:\sqllib\sqlenv.cbl".
  103.       *----------------------------------------------------
  104.       *            Program Constants
  105.       *----------------------------------------------------
  106.        78 testcase-name        value "Test Case:D30ABBC1".
  107.        78 description          value "Create Views and Import data ".
  108.        77 error-handler-t0-f1  pic x value "1".
  109.       *----------------------------------------------------
  110.       *           Import Filenames and Tclostrg
  111.       *----------------------------------------------------
  112.         77  imp-cust            pic x(13) value "customer.wrk".
  113.         77  imp-box             pic x(12) value "box.wr1".
  114.         77  imp-loan            pic x(12) value "loan.wks".
  115.         77  imp-sav             pic x(12) value "savings.wks".
  116.         77  imp-chck            pic x(13) value "checking.wk1".
  117.       *
  118.         77  ins-cust            pic x(20) value "insert into customer".
  119.         77  ins-box             pic x(20) value "insert into box".
  120.         77  ins-loan            pic x(20) value "insert into loan".
  121.         77  ins-sav             pic x(20) value "insert into savings".
  122.         77  ins-chck            pic x(20) value "insert into checking".
  123.       *
  124.         77  custmsg             pic x(12) value "custmsg.msg".
  125.         77  boxmsg              pic x(12) value "boxmsg.msg".
  126.         77  loanmsg             pic x(12) value "loanmsg.msg".
  127.         77  savmsg              pic x(12) value "savemsg.msg".
  128.         77  chckmsg             pic x(12) value "chckmsg.msg".
  129.       *----------------------------------------------------
  130.       *            Import/Export declarations
  131.       *----------------------------------------------------
  132.         77  mf-length           pic 9(4) comp-5.
  133.         77  ft-length           pic 9(4) comp-5.
  134.         77  df-length           pic 9(4) comp-5.
  135.         77  caller-action       pic 9(4) comp-5 value 0.
  136.         77  msgfile             pic x(13).
  137.         77  datafile            pic x(13).
  138.         77  filetype            pic x(4).
  139.       *
  140.         01  dcoldata.
  141.             05  dcolmeth        pic x(2) value SQL-METH-D.
  142.             05  dcolnum         pic 9(4) comp-5.
  143.             05  dcoln occurs 1 times depending on dcolnum.
  144.                 10  dcoln-len   pic 9(4) comp-5.
  145.                 10  dcoln-ptr   pointer.
  146.       *
  147.         01  filetmod.
  148.             05  filetmod-len    pic 9(4) comp-5.
  149.             05  filetmod-str    pic x(20).
  150.       *
  151.         01  tcolstrg.
  152.             05  tcolstrg-len    pic 9(4) comp-5.
  153.             05  tcolstrg-str    pic x(21).
  154.       *----------------------------------------------------
  155.       *            Output file declarations
  156.       *----------------------------------------------------
  157.        01 error-report-out1.
  158.           05  Testcase-name-out pic x(21).
  159.           05  filler            pic x(4).
  160.           05  descrip-out       pic x(54).
  161.        01 error-report-out2.
  162.           05  filler            pic x(10)  value "Procedure:".
  163.           05  routine-label     pic x(20).
  164.           05  filler            pic x(12)  value "    SQLCODE:".
  165.           05  sqlcode-out       pic 9(9).
  166.           05  filler            pic x(28).
  167.        01 error-report-out3.
  168.           05  buffer-out     pic x(512).
  169.           05  filler           pic x(10).
  170.       ***********************End Working-Storage Section***
  171.       *----------------------------------------------------
  172.       ***********************Begin Procedure Division******
  173.         Procedure division.
  174.       *----------------------------------------------------
  175.         Exec sql
  176.              whenever sqlerror go to sqerr
  177.         end-exec.
  178.       *
  179.         exec sql
  180.              whenever sqlwarning continue
  181.         end-exec.
  182.       *
  183.         exec sql
  184.              whenever not found continue
  185.         end-exec.
  186.       *
  187.         Perform initialization.
  188.         display "Starting Signal Handler".
  189.         Perform signal-handler.
  190.         If error-handler-t0-f1 is equal to "1"
  191.            Display "Start using database "
  192.            Perform start-using-db.
  193.         If error-handler-t0-f1 is equal to "1"
  194.            Display "Alter table for foreign keys"
  195.            Perform alter-foreign-key.
  196.         If error-handler-t0-f1 is equal to "1"
  197.            Display "revoking public"
  198.            Perform revoke-public.
  199.         If error-handler-t0-f1 is equal to "1"
  200.            Display "Granting Privilege"
  201.            Perform grant-privilege.
  202.         If error-handler-t0-f1 is equal to "1"
  203.            Display "creating view 1"
  204.            Perform create-view1.
  205.         If error-handler-t0-f1 is equal to "1"
  206.            Display "creating view 2"
  207.            Perform create-view2.
  208.         If error-handler-t0-f1 is equal to "1"
  209.            Display "Creating view 3"
  210.            Perform create-view3.
  211.         If error-handler-t0-f1 is equal to "1"
  212.            Display "Creating view 4"
  213.            Perform create-view4.
  214.         If error-handler-t0-f1 is equal to "1"
  215.            Display "Creating view 5"
  216.            Perform create-view5.
  217.         If error-handler-t0-f1 is equal to "1"
  218.            Display "Creating view 6"
  219.            Perform create-view6.
  220.         If error-handler-t0-f1 is equal to "1"
  221.            Display "Creating view 7"
  222.            Perform create-view7.
  223.         If error-handler-t0-f1 is equal to "1"
  224.            Display "Importing customer data"
  225.            Perform customer-table-import.
  226.         If error-handler-t0-f1 is equal to "1"
  227.            Display "Importing box data"
  228.            Perform box-table-import.
  229.         If error-handler-t0-f1 is equal to "1"
  230.            Display "Importing loan data"
  231.            Perform loan-table-import.
  232.         If error-handler-t0-f1 is equal to "1"
  233.            Display "Importing savings data"
  234.            Perform savings-table-import.
  235.         If error-handler-t0-f1 is equal to "1"
  236.            Display "Importing checking data"
  237.            Perform checking-table-import.
  238.         If error-handler-t0-f1 is equal to "1"
  239.            Perform stop-db.
  240.         If error-handler-t0-f1 is equal to "0"
  241.            display "You have an error please check the file ERRFIL".
  242.         Perform end-run.
  243.       ***********************End of Procedure Division****
  244.       ****************************************************
  245.       *                Procedures                        *
  246.       ****************************************************
  247.       ***********************Begin Procedure**************
  248.         initialization.
  249.       *---------------------------------------------------
  250.         move testcase-name to testcase-name-out.
  251.         move description to descrip-out.
  252.         move 0 to filetmod-len.
  253.         move "S" to u.
  254.       ***********************End Procedure****************
  255.       ***********************Begin Procedure**************
  256.        signal-handler.
  257.       *--------------------------------------------------
  258.            call "__sqlgisig" using
  259.                 sqlca.
  260.            move "Signal Handler" to routine-label.
  261.            if sqlcode is less than 0
  262.               perform sqlerrorhandler.
  263.       ***********************End Procedure****************
  264.       ***********************Begin Procedure**************
  265.          start-using-db.
  266.       *---------------------------------------------------
  267.           call "__sqlgstrd" using
  268.                 database
  269.                 spare2
  270.                 sqlca
  271.                 by value d-use
  272.                 by value db-length
  273.                 by value spare1.
  274.             move "start using db1" to routine-label.
  275.             if sqlcode equal -1015
  276.                 perform restart-db.
  277.             if sqlcode not equal 0
  278.                 perform sqlerrorhandler.
  279.       ***********************End Procedure****************
  280.       ***********************Begin Procedure**************
  281.         restart-db.
  282.       *--------------------------------------------------
  283.         move "resart db " to routine-label.
  284.         call "__sqlgrest" using
  285.                 database
  286.                 spare2
  287.                 sqlca
  288.                 by value db-length
  289.                 by value spare1.
  290.       *
  291.         if sqlcode is not equal to 0
  292.                 perform sqlerrorhandler.
  293.       *
  294.         If error-handler-t0-f1 is equal to "1"
  295.           move "start using db2" to routine-label
  296.           call "__sqlgstrd" using
  297.                 database
  298.                 spare2
  299.                 sqlca
  300.                 by value d-use
  301.                 by value db-length
  302.                 by value spare1
  303.           if sqlcode is not equal to 0
  304.                 perform sqlerrorhandler.
  305.       ***********************End Procedure****************
  306.       ***********************Begin Procedure**************
  307.        alter-foreign-key.
  308.       *--------------------------------------------------
  309.         move "alter foreign key" to routine-label.
  310.       *
  311.         exec sql
  312.              alter table savings foreign key sssn (s_ssn) references
  313.              customer on delete restrict
  314.         end-exec.
  315.       *
  316.         exec sql
  317.              alter table loan foreign key lssn (l_ssn) references
  318.              customer on delete restrict
  319.         end-exec.
  320.       *
  321.         exec sql
  322.              alter table checking foreign key cssn (c_ssn1) references
  323.              customer on delete restrict
  324.         end-exec.
  325.       *
  326.         exec sql
  327.              alter table debits foreign key dacct (db_accnumb)
  328.              references checking on delete cascade
  329.         end-exec.
  330.       *
  331.         exec sql
  332.              alter table credits foreign key cacct (cr_accnumb)
  333.              references checking on delete cascade
  334.         end-exec.
  335.       *
  336.         exec sql
  337.              commit
  338.         end-exec.
  339.       ***********************End Procedure****************
  340.       ***********************Begin Procedure**************
  341.        revoke-public.
  342.       *--------------------------------------------------
  343.         move "revoke public" to routine-label.
  344.       *
  345.            exec sql
  346.                 revoke createtab on database from public
  347.            end-exec.
  348.       *
  349.            exec sql
  350.                revoke bindadd on database from public
  351.            end-exec.
  352.       *
  353.            exec sql
  354.               revoke connect on database from public
  355.            end-exec.
  356.       *
  357.            exec sql
  358.                 commit
  359.            end-exec.
  360.       ***********************End Procedure****************
  361.       ***********************Begin Procedure**************
  362.        grant-privilege.
  363.       *--------------------------------------------------
  364.         move "granting privil" to routine-label.
  365.       *
  366.            exec sql
  367.                 grant dbadm on database to gdbadm, badmin
  368.            end-exec.
  369.       *
  370.            exec sql
  371.                 grant connect, bindadd on database to gprep, prep
  372.            end-exec.
  373.       *
  374.            exec sql
  375.               grant connect, createtab on database to gcreate, tcreate
  376.            end-exec.
  377.       *
  378.            exec sql
  379.              grant connect on database to gqrysel, qrysel, gedit,
  380.              tedit, gtvcon, tvcon, gselins, selins, refer, tdelete,
  381.              tupdate, selupdel, texecute, editalt
  382.            end-exec.
  383.       *
  384.            exec sql
  385.                 grant select on table customer to gqrysel, qrysel
  386.            end-exec.
  387.       *
  388.            exec sql
  389.                 grant select, update, insert, delete on table customer
  390.                 to gedit, tedit
  391.            end-exec.
  392.       *
  393.            exec sql
  394.                 commit
  395.            end-exec.
  396.       ***********************End Procedure****************
  397.       ***********************Begin Procedure**************
  398.         create-view1.
  399.       *---------------------------------------------------
  400.         move "create view vloan" to routine-label.
  401.       *
  402.         exec sql
  403.              create view vloan as
  404.                 select cu_ssn,cu_name,cu_addr1,cu_addr2,cu_zip,l_numb,
  405.                 l_type,l_rate,l_paymt,l_bal,l_intodat,l_descrip,
  406.                 l_date,l_ssn,l_term
  407.              from customer, loan
  408.              where customer.cu_ssn = loan.l_ssn
  409.         end-exec.
  410.       *
  411.         exec sql
  412.              commit work
  413.         end-exec.
  414.       ***********************End Procedure****************
  415.       ***********************Begin Procedure**************
  416.         create-view2.
  417.       *---------------------------------------------------
  418.         move "create view vsave" to routine-label.
  419.       *
  420.         exec sql
  421.              create view vsave as
  422.                 select cu_ssn,cu_name,s_inttod,s_accnumb,s_bal,s_ssn
  423.              from customer, savings
  424.              where customer.cu_ssn = savings.s_ssn
  425.         end-exec.
  426.       *
  427.         exec sql
  428.              commit
  429.         end-exec.
  430.       ***********************End Procedure****************
  431.       ***********************Begin Procedure**************
  432.         create-view3.
  433.       *---------------------------------------------------
  434.         move "create view viewbox" to routine-label.
  435.       *
  436.         exec sql
  437.              create view viewbox as
  438.                 select b_numb, b_size, b_rent
  439.                 from box
  440.                 where b_size = 'N'
  441.         end-exec.
  442.       *
  443.         exec sql
  444.              commit
  445.         end-exec.
  446.       ***********************End Procedure****************
  447.       ***********************Begin Procedure**************
  448.         create-view4.
  449.       *---------------------------------------------------
  450.         move "create view viewcust" to routine-label.
  451.       *
  452.         exec sql
  453.              create view viewcust as
  454.                 select *
  455.                 from newcust
  456.         end-exec.
  457.       *
  458.         exec sql
  459.              commit
  460.         end-exec.
  461.       ***********************End Procedure****************
  462.       ***********************Begin Procedure**************
  463.         create-view5.
  464.       *---------------------------------------------------
  465.         move "create view solloan" to routine-label.
  466.       *
  467.         exec sql
  468.              create view solloan (ssn, ssnsc) as
  469.                 ((select cu_ssn, s_ssn
  470.                 from customer, savings
  471.                 where (cu_ssn = s_ssn) and (s_bal > 1000.00))
  472.       *
  473.                 intersect
  474.       *
  475.                 (select cu_ssn, c_ssn1
  476.                 from customer, checking
  477.                 where (cu_ssn = c_ssn1) and (c_endbal > 1000.00))
  478.       *
  479.                 except
  480.       *
  481.                 (select cu_ssn, l_ssn
  482.                 from customer, loan
  483.                 where cu_ssn = l_ssn))
  484.         end-exec.
  485.       *
  486.         exec sql
  487.             commit
  488.         end-exec.
  489.       ***********************End Procedure****************
  490.       ***********************Begin Procedure**************
  491.         create-view6.
  492.       *---------------------------------------------------
  493.         move "create view chkact" to routine-label.
  494.       *
  495.         exec sql
  496.             create view chkact (accnumb) as
  497.                 ((select c_accnumb
  498.                 from checking
  499.                 where c_accnumb not in (select db_accnumb from debits))
  500.       *
  501.                 intersect
  502.       *
  503.                 (select c_accnumb
  504.                 from checking
  505.                 where c_accnumb not in (select cr_accnumb
  506.                                         from credits)))
  507.         end-exec.
  508.       *
  509.         exec sql
  510.             commit
  511.         end-exec.
  512.       ***********************End Procedure****************
  513.       ***********************Begin Procedure**************
  514.         create-view7.
  515.       *---------------------------------------------------
  516.         move "create view inactcus" to routine-label.
  517.       *
  518.         exec sql
  519.              create view inactcus (ssn) as
  520.                 (select cu_ssn
  521.                 from customer
  522.                 where cu_ssn not in ((select c_ssn1 from checking)
  523.                                         union
  524.                                     (select s_ssn from savings)
  525.                                         union
  526.                                     (select l_ssn from loan)
  527.                                         union
  528.                                     (select b_ssn from box)))
  529.         end-exec.
  530.       *
  531.         exec sql
  532.              commit work
  533.         end-exec.
  534.       ***********************End Procedure****************
  535.       ***********************Begin Procedure**************
  536.        customer-table-import.
  537.       *---------------------------------------------------
  538.         move "importing customer data" to routine-label.
  539.       *
  540.         move 21 to tcolstrg-len.
  541.         move ins-cust to tcolstrg-str.
  542.         move custmsg to msgfile.
  543.         move imp-cust to datafile.
  544.         move "WSF" to filetype.
  545.         move 12 to df-length.
  546.         move 11 to mf-length.
  547.         move 3 to ft-length.
  548.       *
  549.         call "__sqlgimp" using
  550.                 database
  551.                 spare2
  552.                 imp-cust
  553.                 dcoldata
  554.                 tcolstrg
  555.                 filetype
  556.                 filetmod
  557.                 msgfile
  558.                 sqlca
  559.                 by value caller-action
  560.                 by value db-length
  561.                 by value spare1
  562.                 by value df-length
  563.                 by value ft-length
  564.                 by value mf-length.
  565.  
  566.         if sqlcode is less than 0
  567.                 perform sqlerrorhandler.
  568.       *
  569.         exec sql
  570.              commit
  571.         end-exec.
  572.       ***********************End Procedure****************
  573.       ***********************Begin Procedure**************
  574.        box-table-import.
  575.       *---------------------------------------------------
  576.         move "importing box data" to routine-label.
  577.       *
  578.         move 20 to tcolstrg-len.
  579.         move ins-box to tcolstrg-str.
  580.         move boxmsg to msgfile.
  581.         move imp-box to datafile.
  582.         move "WSF" to filetype.
  583.         move 7 to df-length.
  584.         move 10 to mf-length.
  585.         move 3 to ft-length.
  586.       *
  587.         call "__sqlgimp" using
  588.                 database
  589.                 spare2
  590.                 datafile
  591.                 dcoldata
  592.                 tcolstrg
  593.                 filetype
  594.                 filetmod
  595.                 msgfile
  596.                 sqlca
  597.                 by value caller-action
  598.                 by value db-length
  599.                 by value spare1
  600.                 by value df-length
  601.                 by value ft-length
  602.                 by value mf-length.
  603.  
  604.         if sqlcode is less than 0
  605.                 perform sqlerrorhandler.
  606.       *
  607.         exec sql
  608.              commit
  609.         end-exec.
  610.       ***********************End Procedure****************
  611.       ***********************Begin Procedure**************
  612.        loan-table-import.
  613.       *---------------------------------------------------
  614.         move "importing loan data" to routine-label.
  615.       *
  616.         move 20 to tcolstrg-len.
  617.         move ins-loan to tcolstrg-str.
  618.         move loanmsg to msgfile.
  619.         move imp-loan to datafile.
  620.         move "WSF" to filetype.
  621.         move 8 to df-length.
  622.         move 11 to mf-length.
  623.         move 3 to ft-length.
  624.       *
  625.         call "__sqlgimp" using
  626.                 database
  627.                 spare2
  628.                 datafile
  629.                 dcoldata
  630.                 tcolstrg
  631.                 filetype
  632.                 filetmod
  633.                 msgfile
  634.                 sqlca
  635.                 by value caller-action
  636.                 by value db-length
  637.                 by value spare1
  638.                 by value df-length
  639.                 by value ft-length
  640.                 by value mf-length.
  641.  
  642.         if sqlcode is less than 0
  643.                 perform sqlerrorhandler.
  644.       *
  645.         exec sql
  646.              commit
  647.         end-exec.
  648.       ***********************End Procedure****************
  649.       ***********************Begin Procedure**************
  650.        savings-table-import.
  651.       *---------------------------------------------------
  652.         move "importing savings data" to routine-label.
  653.       *
  654.         move 20 to tcolstrg-len.
  655.         move ins-sav to tcolstrg-str.
  656.         move savmsg to msgfile.
  657.         move imp-sav to datafile.
  658.         move "WSF" to filetype.
  659.         move 11 to df-length.
  660.         move 11 to mf-length.
  661.         move 3 to ft-length.
  662.       *
  663.         call "__sqlgimp" using
  664.                 database
  665.                 spare2
  666.                 datafile
  667.                 dcoldata
  668.                 tcolstrg
  669.                 filetype
  670.                 filetmod
  671.                 msgfile
  672.                 sqlca
  673.                 by value caller-action
  674.                 by value db-length
  675.                 by value spare1
  676.                 by value df-length
  677.                 by value ft-length
  678.                 by value mf-length.
  679.  
  680.         if sqlcode is less than 0
  681.                 perform sqlerrorhandler.
  682.       *
  683.         exec sql
  684.              commit
  685.         end-exec.
  686.       ***********************End Procedure****************
  687.       ***********************Begin Procedure**************
  688.        checking-table-import.
  689.       *---------------------------------------------------
  690.         move "importing checking data" to routine-label.
  691.       *
  692.         move 20 to tcolstrg-len.
  693.         move ins-chck to tcolstrg-str.
  694.         move chckmsg to msgfile.
  695.         move imp-chck to datafile.
  696.         move "WSF" to filetype.
  697.         move 12 to df-length.
  698.         move 11 to mf-length.
  699.         move 3 to ft-length.
  700.       *
  701.         call "__sqlgimp" using
  702.                 database
  703.                 spare2
  704.                 datafile
  705.                 dcoldata
  706.                 tcolstrg
  707.                 filetype
  708.                 filetmod
  709.                 msgfile
  710.                 sqlca
  711.                 by value caller-action
  712.                 by value db-length
  713.                 by value spare1
  714.                 by value df-length
  715.                 by value ft-length
  716.                 by value mf-length.
  717.  
  718.         if sqlcode is less than 0
  719.                 perform sqlerrorhandler.
  720.       *
  721.         exec sql
  722.              commit
  723.         end-exec.
  724.       ***********************End Procedure****************
  725.       ***********************Begin Procedure**************
  726.          stop-db.
  727.       *---------------------------------------------------
  728.             call "__sqlgstpd" using
  729.                sqlca.
  730.       *
  731.                move "Stop Db" to routine-label.
  732.               if sqlcode is less than 0
  733.                 perform sqlerrorhandler.
  734.       ***********************End Procedure****************
  735.       ***********************Begin Procedure**************
  736.         sqlerrorhandler.
  737.       *---------------------------------------------------
  738.            call "__sqlgintp" using
  739.              buffer
  740.              sqlca
  741.              by value line-width
  742.              by value buffer-size.
  743.            move 0 to error-handler-t0-f1
  744.            move sqlcode to sqlcode-out
  745.            move buffer to buffer-out.
  746.            open output errfil.
  747.            move error-report-out1 to line-out.
  748.            write line-out after advancing 1 line.
  749.            move error-report-out2 to line-out.
  750.            write line-out after advancing 1 line.
  751.            move error-report-out3 to line-out.
  752.            write line-out after advancing 1 line.
  753.            perform roll-back-work.
  754.            close errfil.
  755.            move 1 to return-code.
  756.       ***********************Begin Procedure**************
  757.         roll-back-work.
  758.       *---------------------------------------------------
  759.         exec sql
  760.              whenever sqlerror continue
  761.         end-exec.
  762.       *
  763.         exec sql
  764.              rollback work
  765.         end-exec.
  766.       *
  767.         if sqlcode is less than 0
  768.            move "Rollback failed" to routine-label
  769.            move sqlcode to sqlcode-out
  770.            move error-report-out2 to line-out.
  771.            write line-out after advancing 1 line.
  772.       *---------------------------------------------------
  773.         sqerr.
  774.       *---------------------------------------------------
  775.         perform sqlerrorhandler.
  776.         perform stop-db.
  777.         perform end-run.
  778.       ***********************BEGIN PROCEDURE**************
  779.         end-run.
  780.       *--------------------------------------------------
  781.         stop run.
  782.  
  783.