Web ダウンロードにより提供される以下のプログラム例では、Btrieve の一般的な操作方法を説明します。これらの操作は、MicroKernel との依存関係で要求される順番(ファイルを開いてから I/O を実行するなど)で行われます。
*
*
* Copyright 2003 Pervasive Software Inc. All Rights Reserved
*
*
* BTRSAMP.CBL
* この COBOL プログラムのサンプルでは、Micro Focus COBOL v3.x を使用して
* アプリケーションから Btrieve 呼び出しを作成します。
*
*
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.
*
* 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.
*
* 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.
*
* 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 opening file.Status= ' B-STATUS
ELSE
DISPLAY 'Updated to:' DECIMAL-FIELD STRING-FIELD
END-IF.
*
* 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.