home *** CD-ROM | disk | FTP | other *** search
/ Datatid 1999 #6 / Datatid_1999-06.iso / internet / Tango352Promo / P.SQL / PTKPKG.1 / MFSAMP.COB < prev    next >
Encoding:
Text File  |  1997-04-15  |  7.0 KB  |  173 lines

  1.       *
  2.       *
  3.       *  Copyright 1982-1997 Pervasive Software Inc. All Rights Reserved
  4.       *
  5.       *
  6.       *  MFSAMP.COB
  7.       *
  8.       *  This is a simple sample designed to allow you to confirm your
  9.       *  ability to compile, link, and execute a Scalable SQL application for
  10.       *  your target environment using your compiler tools.
  11.       *
  12.       *  This program demonstrates the Micro Focus COBOL interface for
  13.       *  Scalable SQL. It uses SQL-level functions to fetch records from the
  14.       *  'BTU' database included with Scalable SQL.
  15.       *
  16.       *  This program does the following operations on the sample database:
  17.       *  - logs into the database
  18.       *  - gets a cursor
  19.       *  - compiles a select statement
  20.       *  - gets a record
  21.       *  - displays selected portions of the retrieved record
  22.       *  - frees resources
  23.       *  - logs out of the database
  24.       *
  25.       *  IMPORTANT: Be sure to provide the complete path to the sample
  26.       *  database location, as shown below for a particular case.
  27.       *  See 'IMPORTANT', below.
  28.  
  29.        IDENTIFICATION DIVISION.
  30.        PROGRAM-ID. MFSAMP.
  31.  
  32.        ENVIRONMENT DIVISION.
  33.        CONFIGURATION SECTION.
  34.        SOURCE-COMPUTER.  IBM.
  35.        OBJECT-COMPUTER.  IBM.
  36.  
  37.        INPUT-OUTPUT SECTION.
  38.  
  39.        FILE-CONTROL.
  40.            SELECT TFIL ASSIGN TO "DTAPATHS.DAT".
  41.            SELECT OUTFILE ASSIGN TO "RXQLT1.LST".
  42.       *OUTNAME.
  43.  
  44.        DATA DIVISION.
  45.        FILE SECTION.
  46.        FD  TFIL                 LABEL RECORDS ARE STANDARD.
  47.        01  PATH-NAMES.
  48.            05  P-NAME           PIC X(70).
  49.            05  OUTPT-FILE       PIC X(70).
  50.  
  51.        FD  OUTFILE              LABEL RECORDS ARE STANDARD.
  52.        01  REPORT-LINE          PIC X(80).
  53.  
  54.        WORKING-STORAGE SECTION.
  55.        77   EOF                            PIC S9(4) COMP-5 VALUE -109.
  56.        77   X-STAT                         PIC S9(4) COMP-5 VALUE 0.
  57.        77   CURSORID                       PIC  9(4) COMP-5.
  58.        77   FETCH-OP                       PIC  9(4) COMP-5  VALUE 1.
  59.        77   OPTION                         PIC  9(4) COMP-5  VALUE 0.
  60.        01   DSP-STAT                       PIC ZZZZ9.
  61.        01   USERID.
  62.             03  NULL-USERID                PIC 9(2) COMP-5 VALUE 0.
  63.        01   PSWD.
  64.             03  NULL-PSWD                  PIC 9(2) COMP-5 VALUE 0.
  65.  
  66.       * IMPORTANT!!!   Use appropriate path to dict/data
  67.        01   DICTIONARY.
  68.             03  DICTIONARY-PATH            PIC X(64)  VALUE
  69.                 "V:\SSQL40\DEMODATA".
  70.        01   FILEPATH.
  71.             03  FILE-PATH                  PIC X(64)  VALUE
  72.                 "V:\SSQL40\DEMODATA".
  73.        01   MACHINE.
  74.             03  FIRST-BYTE                 PIC 9(2)  COMP-5 VALUE 0.
  75.        01   PROCESSID                      PIC 9(4)  COMP-5 VALUE 0.
  76.        01   OWNER.
  77.             03  NULL-BYTE                  PIC 9(2)  COMP-5 VALUE 0.
  78.        01   SQL-STATEMENT.
  79.             03  ST-LINE1                   PIC X(45) VALUE
  80.              "SELECT * ".
  81.             03  ST-LINE2                   PIC X(28) VALUE
  82.              "FROM PERSON  ".
  83.             03  ST-LINE3                   PIC X(35) VALUE
  84.              "WHERE ID = 101135758 ".
  85.             03  NULL-BYTE                  PIC 9(2)  COMP-5 VALUE 0.
  86.        01   DATA-BUFFER.
  87.             03   DATA-LEN                  PIC 9(2).
  88.             03   PERSON-ID                 PIC X(11).
  89.             03   DUMMY                     PIC X(11).
  90.             03   FIRST-NAME                PIC X(15).
  91.             03   LAST-NAME                 PIC X(25).
  92.             03   PERM-STREET               PIC X(30).
  93.             03   PERM-CITY                 PIC X(30).
  94.             03   PERM-STATE                PIC X(2).
  95.             03   PERM-ZIP                  PIC X(10).
  96.             03   PERM-COUNTRY              PIC X(20).
  97.             03   STREET                    PIC X(30).
  98.             03   CITY                      PIC X(30).
  99.             03   STATE                     PIC X(2).
  100.             03   ZIP                       PIC X(10).
  101.             03   PHONE                     PIC X(13).
  102.             03   EMERGENCY-PHONE           PIC X(20).
  103.             03   UNLISTED                  PIC X(3).
  104.             03   DATE-OF-BIRTH             PIC X(8).
  105.             03   EMAIL-ADDRESS             PIC X(30).
  106.             03   SEX                       PIC X(3).
  107.             03   CITIZENSHIP               PIC X(20).
  108.             03   SURVEY                    PIC X(3).
  109.             03   SMOKER                    PIC X(3).
  110.             03   MARRIED                   PIC X(3).
  111.             03   CHILDREN                  PIC X(3).
  112.             03   DISABILITY                PIC X(3).
  113.             03   SCHOLARSHIP               PIC X(3).
  114.             03   COMMENTS                  PIC X(200).
  115.        01   BUFLEN                         PIC 9(4)  COMP-5.
  116.        01   SEL-COUNT                      PIC S9(4) COMP-5.
  117.        01   SPACING                        PIC S9(4) COMP-5.
  118.  
  119.        01   MSG                            PIC X(80).
  120.  
  121.        PROCEDURE DIVISION.
  122.        MAIN-ROUTINE.
  123.             MOVE "SQL-Level Functions Example Program Started" TO MSG
  124.             DISPLAY MSG
  125.             CALL "_XQLLOGIN" USING  X-STAT, USERID, PSWD, DICTIONARY,
  126.                  FILEPATH, MACHINE, PROCESSID.
  127.             MOVE X-STAT TO DSP-STAT.
  128.             IF X-STAT NOT = 0
  129.                DISPLAY "XQLLOGIN failed.  Status = " DSP-STAT
  130.                PERFORM QUIT.
  131.             CALL "_XQLCURSOR" USING X-STAT, CURSORID.
  132.             IF X-STAT NOT = 0
  133.                MOVE X-STAT TO DSP-STAT
  134.                DISPLAY "XQLCURSOR failed.  Status = " DSP-STAT
  135.                PERFORM QUIT.
  136.             MOVE 94 TO BUFLEN.
  137.             CALL "_XQLCOMPILE" USING X-STAT, CURSORID, BUFLEN,
  138.                           SQL-STATEMENT.
  139.             IF X-STAT NOT = 0
  140.                MOVE X-STAT TO DSP-STAT
  141.                DISPLAY "XQLCOMPILE failed.  Status = " DSP-STAT
  142.                DISPLAY SQL-STATEMENT
  143.                PERFORM QUIT.
  144.             PERFORM FETCH-DATA UNTIL X-STAT NOT = 0.
  145.  
  146.        QUIT.
  147.            CALL "_XQLLOGOUT" USING X-STAT.
  148.            DISPLAY "Run completed.".
  149.            STOP RUN.
  150.  
  151.        FETCH-DATA.
  152.            MOVE 536  TO BUFLEN.
  153.            MOVE 1   TO SEL-COUNT.
  154.            MOVE 1   TO OPTION.
  155.            MOVE 0   TO SPACING.
  156.            CALL "_XQLFETCH" USING X-STAT, CURSORID, FETCH-OP, BUFLEN,
  157.                           DATA-BUFFER, SEL-COUNT, OPTION, SPACING.
  158.            IF X-STAT NOT = 0 AND X-STAT NOT = EOF
  159.                MOVE X-STAT TO DSP-STAT
  160.                DISPLAY "XQLFETCH failed.  Status = " DSP-STAT.
  161.            IF SEL-COUNT > 0
  162.            DISPLAY "Selected fields from the retrieved record are: "
  163.            DISPLAY "Name:    " FIRST-NAME
  164.            DISPLAY "         " LAST-NAME
  165.            DISPLAY "Country: " PERM-COUNTRY
  166.            DISPLAY "Street:  " PERM-STREET
  167.            DISPLAY "City:    " PERM-CITY
  168.            DISPLAY "State:   " PERM-STATE
  169.            DISPLAY "Zip:     " PERM-ZIP
  170.            MOVE 2 TO FETCH-OP.
  171.  
  172.  
  173.