COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

25.3 リレーショナルデータベース(XDM/RD)操作シミュレーション

メインフレームでリレーショナルデータベースXDM/RD(Extensible Data Manager/Relational Database)を操作するプログラムの埋め込みSQL文を覚え書きとしてコンパイルし,テストデバッガのTDコマンドを使用してテストができます。

<この節の構成>
(1) コンパイル方法
(2) テスト方法

(1) コンパイル方法

リレーショナルデータベース(XDM/RD)操作シミュレーション機能を使用する場合,-SQL,XDMオプションを指定してコンパイルします。また,SQL連絡領域SQLCAは,メインフレームのXDM/RDが提供しているSQL連絡領域をSQLCA.cblという名称でPC上に転送して使用します。このシステムでは,リレーショナルデータベース(XDM/RD)操作シミュレーション機能の実行時ライブラリ用ダミールーチンとして,CBLXDMRDを提供します。

(2) テスト方法

実行可能ファイルではSQL文は実行に関係しないため,SQL文のテストはできません。SQL以外の文のテストをする場合は,テストデバッガのTDコマンド(ASSIGN DATAコマンドなど)を用いて次のようにテストします。

(例)
行番号3000〜3200のSQL文の擬似実行で,NAME-AREAにデータを代入し,行番号3300のIF文のTHENの処理とELSEの処理をテストする。
(原始プログラム)
001000 WORKING-STORAGE SECTION.
001100 EXEC SQL BEGIN DECLARE SECTION END-EXEC.
001200 01 NAME-AREA PIC N(20).
001300 EXEC SQL END DECLARE SECTION END-EXEC.
           :
002000 PROCEDURE DIVISION.
           :
003000     EXEC SQL
003100       SELECT NAME INTO :NAME-AREA FROM SHAIN
                               WHERE AGE = 30
003200     END-EXEC.
003300     IF NAME-AREA = N'山田 太郎'
003400       THEN
               :
004000       ELSE
               :
005000     END-IF.
(入力するTDコマンド)
SET BREAK STATEMENT(3000) COUNTER(CNT) DO
  IF CONDITION(CNT=1)
    ASSIGN DATA(NAME-AREA) VALUE(N'山田  太郎')
  ELSE
    ASSIGN DATA(NAME-AREA) VALUE(N'日立  花子')
  ENDIF
  GO
ENDDO
  1. 行番号3000の行に制御が渡るごとに実行を中断します。
  2. 最初の中断のときは"山田 太郎"を,2回目以降の中断のときは"日立 花子"をNAME-AREAに設定します。
  3. NAME-AREAに値を設定後,実行を再開始します。