QUSRMBRD
はファイルのメンバーの記述情報を検索する API である。
QUSRMBRD
)API必須パラメータ・グループ:
1. | レシーバー変数 | 出力 | Char(*) |
2. | レシーバー変数長 | 入力 | Binary(4) |
3. | 形式名 | 入力 | Char(8) |
4. | 修飾データ・ベースファイル名 | 入力 | Char(20) の配列(*) |
5. | データ・ベース・メンバー名 | 入力 | Char(10) |
6. | 一時変更処理 | 入力 | Char(1) |
任意選択パラメータ:
7. | エラー・コード | 入出力 | Char(*) |
任意選択パラメータ:
8. | メンバー検索処理 | 入力 | Char(*) |
QUSRMBRD
は形式名によって戻されるレシーバー変数 ( 戻り変数 ) の内容とその長さが変わります。
形式名
MBRD0100 形式 | ・・・・・・ | メンバー名および基本的なソース情報 |
MBRD0200 形式 | ・・・・・・ | メンバー名および拡張情報 |
MBRD0300 形式 | ・・・・・・ | メンバー名および完全な情報 |
修飾データ・ベース名
ファイル名 ( 10桁 ) + ライブラリー名 ( 10桁 ) で表現する。
ライブラリー名 には *CURLIB
, *LIBL
の指定も可。
データ・ベース・メンバー名
ファイルのメンバー名を指定する。
*FIRST
または *LAST
の使用も可。
一時変更処理
0 : 一時変更を行なわない を指定すること。
■ MBRD0100
形式
オフセット | タイプ | フィールド | |
---|---|---|---|
10進数 | 16進数 | ||
0 | 0 | BINARY(4) | 返されるバイト数 |
4 | 4 | BINARY(4) | 使用可能なバイト数 |
8 | 8 | CHAR(10) | データ・ベース・ファイル名 |
18 | 12 | CHAR(10) | ライブラリー名 |
28 | 1C | CHAR(10) | メンバー名 |
38 | 26 | CHAR(10) | ファイル属性 |
48 | 30 | CHAR(10) | ソース・タイプ |
58 | 3A | CHAR(13) | 作成日時 |
71 | 47 | CHAR(13) | 最後のソースを変更した日時 |
84 | 54 | CHAR(50) | メンバー・テキスト記述 |
134 | 86 | CHAR(1) | ソース・ファイル |
■ MBRD0200
形式
オフセット | タイプ | フィールド | |
---|---|---|---|
10進数 | 16進数 | ||
0 | 0 | OBJD0200 形式からのすべての情報 | |
135 | 87 | CHAR(13) | ソース・ファイルの更新日時 |
136 | 88 | CHAR(13) | オブジェクト保管日時 |
140 | 89 | CHAR(13) | オブジェクト復元日時 |
144 | 8A | CHAR(10) | 作成者のユーザー・プロフィール |
148 | 8C | CHAR(8) | オブジェクトが作成されたシステム |
152 | 90 | CHAR(7) | リセット日付 |
156 | 9C | BINARY(4) | 保管サイズ |
160 | A0 | BINARY(4) | 保管順序番号 |
173 | AD | CHAR(10) | 記憶域 |
186 | BA | CHAR(10) | 保管コマンド |
199 | C7 | CHAR(71) | 保管ボリュームID |
206 | CE | CHAR(10) | 保管装置 |
212 | D4 | CHAR(10) | 保管ファイル名 |
216 | D8 | CHAR(10) | 保管ファイル・ライブラリー名 |
223 | DF | CHAR(17) | 保管ラベル |
230 | E6 | CHAR(9) | システム・レベル |
232 | E8 | CHAR(16) | コンパイラー |
236 | EC | CHAR(8) | オブジェクト・レベル |
240 | F0 | CHAR(1) | ユーザーの変更 |
244 | F4 | CHAR(16) | ライセンス・プログラム |
248 | F8 | CHAR(10) | プログラム一時修正(PTF) |
252 | FC | CHAR(10) | プログラム診断依頼書(APAR) |
■ MBRD0300
形式
オフセット | タイプ | フィールド | |
---|---|---|---|
10進数 | 16進数 | ||
0 | 0 | OBJD0200 形式からのすべての情報 | |
266 | 10A | CHAR(1) | 結合メンバー |
267 | 10B | CHAR(1) | アクセス・パスの保守 |
268 | 10C | CHAR(10) | SQL ファイル・タイプ |
278 | 116 | CHAR(1) | 予約済み |
279 | 117 | CHAR(1) | 読み取り操作の許可 |
280 | 118 | CHAR(1) | 書き出し操作の許可 |
281 | 119 | CHAR(1) | 更新操作の許可 |
282 | 11A | CHAR(1) | 削除操作の許可 |
283 | 11B | CHAR(1) | 予約済み |
284 | 11C | BIBARY(4) | 書出しの置換えを行なうレコード |
288 | 120 | BIBARY(4) | 削除レコードの許容最大パーセント |
292 | 124 | BIBARY(4) | レコードの初期数 |
296 | 128 | BIBARY(4) | レコードの増分数 |
300 | 12C | BIBARY(4) | 増分の最大数 |
304 | 130 | BIBARY(4) | 増分の現行数 |
308 | 134 | BIBARY(4) | レコード容量 |
312 | 138 | CHAR(10) | レコード様式選択プログラム |
322 | 142 | CHAR(10) | ライブラリー |
332 | 14C | BIBARY(4) | 制約索引の数 |
334 | 14E | BIBARY(4) | 制約索引情報までのオフセット |
338 | 153 | CHAR(46) | 予約済み |
384 | 180 | CHAR(112) 配列 | レコード様式および基本ファィル・リスト |
* | * | CHAR(320) 配列 | 制約索引情報 |
これはソース・ファイル PGMRLIB/QRPGLESRC
のメンバー AAI006
のソース・タイプを
表示するプログラムである。
00001.00 H DATEDIT(*YMD/) 0002.00 F********** QUSROBJD : メンバー記述の検索 **************************** 0003.00 F* QUSRMBRD のサンプル 0004.00 F********************************************************************** 0005.00 /COPY QSYSINC/QRPGLESRC,QUSRMBRD 0006.00 D SRCSRCLIB S 20A INZ('QRPGLESRC PGMRLIB ') 0007.00 D CPFMSG C CONST('QCPFMSG *LIBL ') 0008.00 D RCVLEN S 4B 0 INZ(%SIZE(QUSM0100)) 0009.00 0010.00 D APIERR DS 0011.00 D GETBYT 1 4B 0 INZ(160) 0012.00 D AVLBYT 5 8B 0 INZ(0) 0013.00 D MSGID 9 15 0014.00 D MSGDTA 17 160 0015.00 0016.00 D SPCBIN DS 0017.00 D MSGDTALEN 4B 0 INZ(100) 0018.00 D PGMSTKCNT 4B 0 INZ(1) 0019.00 0020.00 C*----------------------------------------------------+ 0021.00 C CALL QUSRMBRD 0022.00 C PARM QUSM0100 0023.00 C PARM RCVLEN 0024.00 C PARM 'MBRD0100' FOTMAT 8 0025.00 C PARM SRCSRCLIB 0026.00 C PARM 'AAI006 ' MBR 10 0027.00 C PARM '0' REPLACE 1 0028.00 C PARM APIERR 0029.00 C*----------------------------------------------------+ 0030.00 C AVLBYT IFEQ *ZEROS 0031.00 C 'SRCTYP=' CAT(P) QUSST00:0 DSP40 40 0032.00 C DSP40 DSPLY ANS 1 0033.00 C ELSE 0034.00 C MOVEL CPFMSG MSGFILLIB 0035.00 C*----------------------------------------------------+ 0036.00 C CALL 'QMHSNDPM' 99 0037.00 C PARM MSGID 0038.00 C PARM MSGFILLIB 20 0039.00 C PARM MSGDTA 0040.00 C PARM MSGDTALEN 0041.00 C PARM '*COMP ' MSGTYPE 10 0042.00 C PARM '*PGMBDY ' PGMQUE 10 0043.00 C PARM PGMSTKCNT 0044.00 C PARM MSGKEY 4 0045.00 C PARM APIERR 0046.00 C*----------------------------------------------------+ 0047.00 C END 0048.00 C MOVE *ON *INLR 0049.00 C RETURN
QUSRMBRD
を使用しているのは
00020.00 C*----------------------------------------------------+ 0021.00 C CALL QUSRMBRD 0022.00 C PARM QUSM0100 0023.00 C PARM RCVLEN 0024.00 C PARM 'MBRD0100' FOTMAT 8 0025.00 C PARM SRCSRCLIB 0026.00 C PARM 'AAI006 ' MBR 10 0027.00 C PARM '0' REPLACE 1 0028.00 C PARM APIERR 0029.00 C*----------------------------------------------------+
であり、レシーバー変数 mbrd0100
からソース・タイプを
0031.00 C 'SRCTYP=' CAT(P) QUSST00:0 DSP40 40 0032.00 C DSP40 DSPLY ANS 1
によって取り出して表示している。
レシーバー変数 QUSM0100
は
0005.00 /COPY QSYSINC/QRPGLESRC,QUSRMBRD
とあるように、このメンバーの中で定義されている。
QUSRMBRD
の実行でエラーが発生すれば
0035.00 C*----------------------------------------------------+ 0036.00 C CALL 'QMHSNDPM' 99 0037.00 C PARM MSGID 0038.00 C PARM MSGFILLIB 20 0039.00 C PARM MSGDTA 0040.00 C PARM MSGDTALEN 0041.00 C PARM '*COMP ' MSGTYPE 10 0042.00 C PARM '*PGMBDY ' PGMQUE 10 0043.00 C PARM PGMSTKCNT 0044.00 C PARM MSGKEY 4 0045.00 C PARM APIERR 0046.00 C*----------------------------------------------------+
によってエラー・メッセージが出力されるように対処している。
この例はサンプルとはいえ十分なエラー・モニターも行なわれているのである。