home *** CD-ROM | disk | FTP | other *** search
- *
- *
- * Copyright 1982-1997 Pervasive Software Inc. All Rights Reserved
- *
- *
- * MFSAMP.COB
- *
- * This is a simple sample designed to allow you to confirm your
- * ability to compile, link, and execute a Scalable SQL application for
- * your target environment using your compiler tools.
- *
- * This program demonstrates the Micro Focus COBOL interface for
- * Scalable SQL. It uses SQL-level functions to fetch records from the
- * 'BTU' database included with Scalable SQL.
- *
- * This program does the following operations on the sample database:
- * - logs into the database
- * - gets a cursor
- * - compiles a select statement
- * - gets a record
- * - displays selected portions of the retrieved record
- * - frees resources
- * - logs out of the database
- *
- * IMPORTANT: Be sure to provide the complete path to the sample
- * database location, as shown below for a particular case.
- * See 'IMPORTANT', below.
-
- IDENTIFICATION DIVISION.
- PROGRAM-ID. MFSAMP.
-
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- SOURCE-COMPUTER. IBM.
- OBJECT-COMPUTER. IBM.
-
- INPUT-OUTPUT SECTION.
-
- FILE-CONTROL.
- SELECT TFIL ASSIGN TO "DTAPATHS.DAT".
- SELECT OUTFILE ASSIGN TO "RXQLT1.LST".
- *OUTNAME.
-
- DATA DIVISION.
- FILE SECTION.
- FD TFIL LABEL RECORDS ARE STANDARD.
- 01 PATH-NAMES.
- 05 P-NAME PIC X(70).
- 05 OUTPT-FILE PIC X(70).
-
- FD OUTFILE LABEL RECORDS ARE STANDARD.
- 01 REPORT-LINE PIC X(80).
-
- WORKING-STORAGE SECTION.
- 77 EOF PIC S9(4) COMP-5 VALUE -109.
- 77 X-STAT PIC S9(4) COMP-5 VALUE 0.
- 77 CURSORID PIC 9(4) COMP-5.
- 77 FETCH-OP PIC 9(4) COMP-5 VALUE 1.
- 77 OPTION PIC 9(4) COMP-5 VALUE 0.
- 01 DSP-STAT PIC ZZZZ9.
- 01 USERID.
- 03 NULL-USERID PIC 9(2) COMP-5 VALUE 0.
- 01 PSWD.
- 03 NULL-PSWD PIC 9(2) COMP-5 VALUE 0.
-
- * IMPORTANT!!! Use appropriate path to dict/data
- 01 DICTIONARY.
- 03 DICTIONARY-PATH PIC X(64) VALUE
- "V:\SSQL40\DEMODATA".
- 01 FILEPATH.
- 03 FILE-PATH PIC X(64) VALUE
- "V:\SSQL40\DEMODATA".
- 01 MACHINE.
- 03 FIRST-BYTE PIC 9(2) COMP-5 VALUE 0.
- 01 PROCESSID PIC 9(4) COMP-5 VALUE 0.
- 01 OWNER.
- 03 NULL-BYTE PIC 9(2) COMP-5 VALUE 0.
- 01 SQL-STATEMENT.
- 03 ST-LINE1 PIC X(45) VALUE
- "SELECT * ".
- 03 ST-LINE2 PIC X(28) VALUE
- "FROM PERSON ".
- 03 ST-LINE3 PIC X(35) VALUE
- "WHERE ID = 101135758 ".
- 03 NULL-BYTE PIC 9(2) COMP-5 VALUE 0.
- 01 DATA-BUFFER.
- 03 DATA-LEN PIC 9(2).
- 03 PERSON-ID PIC X(11).
- 03 DUMMY PIC X(11).
- 03 FIRST-NAME PIC X(15).
- 03 LAST-NAME PIC X(25).
- 03 PERM-STREET PIC X(30).
- 03 PERM-CITY PIC X(30).
- 03 PERM-STATE PIC X(2).
- 03 PERM-ZIP PIC X(10).
- 03 PERM-COUNTRY PIC X(20).
- 03 STREET PIC X(30).
- 03 CITY PIC X(30).
- 03 STATE PIC X(2).
- 03 ZIP PIC X(10).
- 03 PHONE PIC X(13).
- 03 EMERGENCY-PHONE PIC X(20).
- 03 UNLISTED PIC X(3).
- 03 DATE-OF-BIRTH PIC X(8).
- 03 EMAIL-ADDRESS PIC X(30).
- 03 SEX PIC X(3).
- 03 CITIZENSHIP PIC X(20).
- 03 SURVEY PIC X(3).
- 03 SMOKER PIC X(3).
- 03 MARRIED PIC X(3).
- 03 CHILDREN PIC X(3).
- 03 DISABILITY PIC X(3).
- 03 SCHOLARSHIP PIC X(3).
- 03 COMMENTS PIC X(200).
- 01 BUFLEN PIC 9(4) COMP-5.
- 01 SEL-COUNT PIC S9(4) COMP-5.
- 01 SPACING PIC S9(4) COMP-5.
-
- 01 MSG PIC X(80).
-
- PROCEDURE DIVISION.
- MAIN-ROUTINE.
- MOVE "SQL-Level Functions Example Program Started" TO MSG
- DISPLAY MSG
- CALL "_XQLLOGIN" USING X-STAT, USERID, PSWD, DICTIONARY,
- FILEPATH, MACHINE, PROCESSID.
- MOVE X-STAT TO DSP-STAT.
- IF X-STAT NOT = 0
- DISPLAY "XQLLOGIN failed. Status = " DSP-STAT
- PERFORM QUIT.
- CALL "_XQLCURSOR" USING X-STAT, CURSORID.
- IF X-STAT NOT = 0
- MOVE X-STAT TO DSP-STAT
- DISPLAY "XQLCURSOR failed. Status = " DSP-STAT
- PERFORM QUIT.
- MOVE 94 TO BUFLEN.
- CALL "_XQLCOMPILE" USING X-STAT, CURSORID, BUFLEN,
- SQL-STATEMENT.
- IF X-STAT NOT = 0
- MOVE X-STAT TO DSP-STAT
- DISPLAY "XQLCOMPILE failed. Status = " DSP-STAT
- DISPLAY SQL-STATEMENT
- PERFORM QUIT.
- PERFORM FETCH-DATA UNTIL X-STAT NOT = 0.
-
- QUIT.
- CALL "_XQLLOGOUT" USING X-STAT.
- DISPLAY "Run completed.".
- STOP RUN.
-
- FETCH-DATA.
- MOVE 536 TO BUFLEN.
- MOVE 1 TO SEL-COUNT.
- MOVE 1 TO OPTION.
- MOVE 0 TO SPACING.
- CALL "_XQLFETCH" USING X-STAT, CURSORID, FETCH-OP, BUFLEN,
- DATA-BUFFER, SEL-COUNT, OPTION, SPACING.
- IF X-STAT NOT = 0 AND X-STAT NOT = EOF
- MOVE X-STAT TO DSP-STAT
- DISPLAY "XQLFETCH failed. Status = " DSP-STAT.
- IF SEL-COUNT > 0
- DISPLAY "Selected fields from the retrieved record are: "
- DISPLAY "Name: " FIRST-NAME
- DISPLAY " " LAST-NAME
- DISPLAY "Country: " PERM-COUNTRY
- DISPLAY "Street: " PERM-STREET
- DISPLAY "City: " PERM-CITY
- DISPLAY "State: " PERM-STATE
- DISPLAY "Zip: " PERM-ZIP
- MOVE 2 TO FETCH-OP.
-
-
-