PreviousTutorials and Guide to Samples (9.1 revision 1) Next

COBOL

Show this topic in Library frames

The following example program, which is included on your distribution media, shows how to perform several of the more common Btrieve operations, and it performs those operations in the order required by the MicroKernel's dependencies (for example, you must open a file before performing I/O to it).

Example 7-3 Btrsamp.cbl
* 
* 
*  Copyright 2003 Pervasive Software Inc. All Rights Reserved 
* 
* 
*  BTRSAMP.CBL 
* This is a sample COBOL program that makes Btrieve calls 
* from an application using Micro Focus COBOL v3.x. 
* 
* 
       IDENTIFICATION DIVISION. 
      * 
       PROGRAM-ID. TEST1. 
      * 
      * 
       ENVIRONMENT DIVISION. 
       CONFIGURATION SECTION. 
       SOURCE-COMPUTER. IBM-PC. 
       OBJECT-COMPUTER. IBM-PC. 
      * 
      * 
       DATA DIVISION. 
      * 
       WORKING-STORAGE SECTION. 
      * 
      * BTRIEVE OP CODES 
      * 
       01 B-OPEN                        PIC 9(4) COMP-5 VALUE 0. 
       01 B-INSERT                      PIC 9(4) COMP-5 VALUE 2. 
       01 B-GETFIRST                    PIC 9(4) COMP-5 VALUE 12. 
       01 B-UPDATE                      PIC 9(4) COMP-5 VALUE 3. 
       01 B-CLOSE                       PIC 9(4) COMP-5 VALUE 1. 
      * 
       01 B-STATUS                      PIC 9(4) COMP-5 VALUE 0. 
       01 KEY-NUMBER                    PIC 9(4) COMP-5 VALUE 0. 
       01 BUF-LEN                       PIC 9(4) COMP-5 VALUE 0. 
       01 FILE-NAME                     PIC X(13) VALUE SPACES. 
       01 POSITION-BLOCK                PIC X(128) VALUE SPACES. 
       01 DATA-BUFFER. 
          02 DECIMAL-FIELD              PIC 9(4) COMP-3 VALUE 0. 
          02 STRING-FIELD               PIC X(36) VALUE SPACES. 
       01 DSP-STATUS                    PIC 9(5) COMP-5. 
      * 
      * 
      * 
       PROCEDURE DIVISION. 
       BEGIN. 
      * 
      * Open TEST.BTR 
      * 
      * 
           MOVE 0   TO BUF-LEN. 
           MOVE 0   TO KEY-NUMBER. 
           MOVE `TEST.BTR ` TO FILE-NAME. 
           CALL "_BTRV" USING B-OPEN, B-STATUS, POSITION-BLOCK, 
                             DATA-BUFFER, BUF-LEN, FILE-NAME, KEY-NUMBER. 
           IF B-STATUS NOT = 0 
             DISPLAY `Error opening file. Status= ` B-STATUS 
           ELSE 
             DISPLAY `File ` FILE-NAME ` successfully opened' 
           END-IF. 
      * 
      * Insert into TEST.BTR 
      * 
      * 
           MOVE 1    TO DECIMAL-FIELD. 
           MOVE `Record 1' TO STRING-FIELD. 
           MOVE 40   TO BUF-LEN. 
           MOVE 0    TO KEY-NUMBER 
           CALL "_BTRV" USING B-INSERT, B-STATUS, POSITION-BLOCK, 
                             DATA-BUFFER, BUF-LEN, FILE-NAME, KEY-NUMBER. 
           IF B-STATUS NOT = 0 
             DISPLAY `Error inserting into file. Status= ` B-STATUS 
           ELSE 
             DISPLAY `Inserted:  ` DECIMAL-FIELD STRING-FIELD 
           END-IF. 
      * 
      * GetFirst 
      * 
      * 
           MOVE 40   TO BUF-LEN. 
           MOVE 0    TO KEY-NUMBER 
           CALL "_BTRV" USING B-GETFIRST, B-STATUS, POSITION-BLOCK, 
                             DATA-BUFFER, BUF-LEN, FILE-NAME, KEY-NUMBER. 
           IF B-STATUS NOT = 0 
             DISPLAY `Error Getting first record. Status= ` B-STATUS 
           ELSE 
             DISPLAY `Retrieved:  ` DECIMAL-FIELD STRING-FIELD 
           END-IF. 
      * 
      * Update into TEST.BTR 
      * 
      * 
           MOVE 2    TO DECIMAL-FIELD. 
           MOVE `Record 2' TO STRING-FIELD. 
           MOVE 40   TO BUF-LEN. 
           MOVE 0    TO KEY-NUMBER 
           CALL "_BTRV" USING B-UPDATE, B-STATUS, POSITION-BLOCK, 
                             DATA-BUFFER, BUF-LEN, FILE-NAME, KEY-NUMBER. 
           IF B-STATUS NOT = 0 
             DISPLAY `Error updating file. Status= ` B-STATUS 
           ELSE 
             DISPLAY `Updated to:  ` DECIMAL-FIELD STRING-FIELD 
           END-IF. 
      * 
      * Close TEST.BTR 
      * 
      * 
           MOVE 0   TO BUF-LEN. 
           MOVE 0    TO KEY-NUMBER 
           CALL "_BTRV" USING B-CLOSE, B-STATUS, POSITION-BLOCK, 
                             DATA-BUFFER, BUF-LEN, FILE-NAME, KEY-NUMBER. 
           IF B-STATUS NOT = 0 
             DISPLAY `Error closing file. Status= ` B-STATUS 
           ELSE 
             DISPLAY `Successfully closed TEST.BTR' 
           END-IF. 
           STOP RUN. 

Chapter contents
Publication contents

Prev topic: C/C++
Next topic: Delphi