C/400

93. QUSRMBRD メンバー記述の検索

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進数
00BINARY(4)返されるバイト数
44BINARY(4)使用可能なバイト数
88CHAR(10)データ・ベース・ファイル名
1812CHAR(10)ライブラリー名
281CCHAR(10)メンバー名
3826CHAR(10)ファイル属性
4830CHAR(10)ソース・タイプ
583ACHAR(13)作成日時
7147CHAR(13)最後のソースを変更した日時
8454CHAR(50)メンバー・テキスト記述
13486CHAR(1)ソース・ファイル

MBRD0200 形式

オフセットタイプフィールド
10進数16進数
00OBJD0200 形式からのすべての情報
13587CHAR(13)ソース・ファイルの更新日時
13688CHAR(13)オブジェクト保管日時
14089CHAR(13)オブジェクト復元日時
1448ACHAR(10)作成者のユーザー・プロフィール
1488CCHAR(8)オブジェクトが作成されたシステム
15290CHAR(7)リセット日付
1569CBINARY(4)保管サイズ
160A0BINARY(4)保管順序番号
173ADCHAR(10)記憶域
186BACHAR(10)保管コマンド
199C7CHAR(71)保管ボリュームID
206CECHAR(10)保管装置
212D4CHAR(10)保管ファイル名
216D8CHAR(10)保管ファイル・ライブラリー名
223DFCHAR(17)保管ラベル
230E6CHAR(9)システム・レベル
232E8CHAR(16)コンパイラー
236ECCHAR(8)オブジェクト・レベル
240F0CHAR(1)ユーザーの変更
244F4CHAR(16)ライセンス・プログラム
248F8CHAR(10)プログラム一時修正(PTF)
252FCCHAR(10)プログラム診断依頼書(APAR)

MBRD0300 形式

オフセットタイプフィールド
10進数16進数
00OBJD0200 形式からのすべての情報
26610ACHAR(1)結合メンバー
26710BCHAR(1)アクセス・パスの保守
26810CCHAR(10)SQL ファイル・タイプ
278116CHAR(1)予約済み
279117CHAR(1)読み取り操作の許可
280118CHAR(1)書き出し操作の許可
281119CHAR(1)更新操作の許可
28211ACHAR(1)削除操作の許可
28311BCHAR(1)予約済み
28411CBIBARY(4)書出しの置換えを行なうレコード
288120BIBARY(4)削除レコードの許容最大パーセント
292124BIBARY(4)レコードの初期数
296128BIBARY(4)レコードの増分数
30012CBIBARY(4)増分の最大数
304130BIBARY(4)増分の現行数
308134BIBARY(4)レコード容量
312138CHAR(10)レコード様式選択プログラム
322142CHAR(10)ライブラリー
33214CBIBARY(4)制約索引の数
33414EBIBARY(4)制約索引情報までのオフセット
338153CHAR(46)予約済み
384180CHAR(112)配列レコード様式および基本ファィル・リスト
**CHAR(320)配列制約索引情報

これはソース・ファイル PGMRLIB/QRPGLESRC のメンバー AAI006 のソース・タイプを
表示するプログラムである。

0001.00 #include <stdio.h>                                                               
0002.00 #include <stdlib.h>                                                              
0003.00 #include <string.h>                                                              
0004.00 #include <QUSRMBRD.h>                                                            
0005.00                                                                                  
0006.00 #define TRUE         0                                                           
0007.00 #define FALSE       -1                                                           
0008.00 typedef struct {                                                                 
0009.00    int  BYTESPRO;                                                                
0010.00    int  BYTESAVL;                                                                
0011.00    char MSGID[7];                                                                
0012.00    char RESRVD;                                                                  
0013.00    char EXCPDATA[100];                                                           
0014.00 } ERRSTRUCTURE;     /* Define the error return structure            */           
0015.00 ERRSTRUCTURE  errcode;/* Error Code Structure for RCVMSG      */                 
0016.00                                                                                  
0017.00 void main(void){                                                                 
0018.00    char msg[128], filfillib[21], mbr[11];                                        
0019.00    Qdb_Mbrd0100_t  mbrd0100;                                                     
0020.00   char m_srctype[11];                                                            
0021.00                                                                                  
0022.00    printf("** TESTMBRD : メンバー記述の検索 **\n");                              
0023.00    getchar();                                                                    
0024.00    errcode.BYTESPRO = errcode.BYTESAVL = 0;                                      
0025.00    memset(filfillib, 0, sizeof(filfillib));                                      
0026.00    memcpy(filfillib, "QRPGLESRC PGMRLIB   ", 20);                                
0027.00    memset(mbr, 0, sizeof(mbr));                                                  
0028.00    memcpy(mbr, "AAI006    ", 10);                                                
0029.00    QUSRMBRD(&mbrd0100, sizeof(Qdb_Mbrd0100_t), "MBRD0100", filfillib,            
0030.00       mbr, "0", &errcode);                                                       
0031.00    memcpy(m_srctype, mbrd0100.Src_Type, 10);                                     
0032.00    m_srctype[10] = 0x00;                                                         
0033.00    printf("srctype of mbr:PGMRLIB/QRPGLESRC(%s)= [%s]\n", mbr, m_srctype);       
0034.00    getchar();                                                                    
0035.00 }                                                                                
【解説】

QUSRMBRD を使用しているのは

0029.00    QUSRMBRD(&mbrd0100, sizeof(Qdb_Mbrd0100_t), "MBRD0100", filfillib,            
0030.00       mbr, "0", &errcode);                                                       

であり、レシーバー変数 mbrd0100 からソース・タイプを

0031.00    memcpy(m_srctype, mbrd0100.Src_Type, 10);                                     
0032.00    m_srctype[10] = 0x00;                                                         

によって取り出して表示している。