Tutorials and Guide to Samples (v11)

COBOL (Btrieve API 用の言語インターフェイス)

Web ダウンロードにより提供される以下のプログラム例では、Btrieve の一般的な操作方法を説明します。これらの操作は、MicroKernel との依存関係で要求される順番(ファイルを開いてから I/O を実行するなど)で行われます。

Btrsamp.cbl

* 
* 
*  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. 

C/C++ (Btrieve API 用の言語インターフェイス)

Delphi (Btrieve API 用の言語インターフェイス)