Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


CBLDCIST('READ')

〈このページの構成〉

名称

ISTテーブルからレコードの入力

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCIST'  USING  一意名1  一意名2  一意名n

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'DCISTSVC'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(8).
   02 データ名D  PIC S9(9) COMP.
   02 データ名E  PIC S9(9) COMP.
   02 データ名F  PIC S9(9) COMP.
   02 FILLER    PIC X(12).
01 一意名2.
   02 データ名G  PIC X(4) VALUE 'READ'.
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 データ名H  PIC S9(9) COMP VALUE ZERO.
   02 一意名3.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
   02 一意名4.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
        :
        :
   02 一意名m.
      03 データ名I  PIC S9(9) COMP.
      03 データ名J  PIC S9(9) COMP.
01 一意名n.
   02 データ名K  PIC X(n).

機能

指定したISTテーブルから指定した範囲のレコードを,参照の目的で入力します。複数のレコードを一括して指定した場合に,指定したレコードのうち一つでもエラーが起こると,入力バッファにはレコードを入力しないでCBLDCIST('READ')はエラーリターンします。

ISTテーブルのレコードを入力するときは,ISTテーブル名と,CBLDCIST('OPEN')で返されたテーブル記述子を設定します。

UAPで値を設定するデータ領域

●データ名A

ISTテーブルとのインタフェースコードを「VALUE 'DCISTSVC'」と設定します。

●データ名C

アクセスするISTテーブルのISTテーブル名を,8文字以内で設定します。8文字に満たない場合は,後ろを空白で埋めてください。

●データ名D

一意名3から一意名mの数(データ名Iとデータ名Jの組の数)を設定します。

●データ名E

入力バッファ長を設定します。入力バッファ長には,(入力レコード長 × 入力レコード数)以上の値を設定してください。

●データ名F

ISTテーブルをオープンして返された,テーブル記述子を設定します。

●データ名G

ISTテーブルからレコードを入力することを示す要求コードを「VALUE 'READ'」と設定します。

●データ名H

0を設定します。

●データ名I

アクセスするレコードの,先頭の相対レコード番号を設定します。

●データ名J

アクセスするレコードの,最後の相対レコード番号を設定します。0を設定した場合は,データ名Iで指定した相対レコード番号のレコードだけを入力します。

●データ名K

入力データ領域(バッファ)を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

指定したレコードは,すべて正常に入力しました。

03800

ISTテーブルへアクセスする順序が間違っています。

03803

データ名Fに設定したテーブル記述子は正常にオープンして得られたテーブル記述子ではありません。

ISTテーブルをオープンしていません。

03804

すべてのレコードを入力するには,データ名Eに設定した入力バッファ長が足りません。

03806

相対レコード番号が間違っています。

03807

メモリが不足しました。

03809

データ名Dに設定した値が,1未満です。

03811

データ名Hに設定した値が間違っています。

03890

インタフェースコード(データ名A)が間違っています。

03891

要求コード(データ名G)が間違っています。