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

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