Page History
...
また、RDML作業リストの最大幅が256文字の例もあります。文字幅300の結果セットが予想される場合、この結果セットをEXECUTEコマンドの一部として作業リストに返すことはできません。この場合、READコマンドを使用して、管理可能なチャンクでレコードを取り出します。必要に応じて、複数のREADを発行し、文字幅が256未満のリストに結果を配置できます。
構文:
コマンド | キーワード | 値 | 開発者用メモ |
|---|---|---|---|
READ | SCROLL | *YES | 任意。次の読み込み用に新しい行と古い行のどちらを選択するかを指定します。 |
*NO | リスト引数にデータが埋められますが、前方にはスクロールしません。 | ||
COLUMN_LIST | 値 | 任意。結果セットに存在するコンマで区切られた列リスト。 |
コメント/警告
READコマンドは、SET PARAMETER(*MAP)コマンドで提供されるフィールドと列のマッピングを使用して現在の結果セットを読み込みます。作業リストのフィールドは列にマッピングされ、これらの列のデータは作業リストのフィールドにマッピングされます。
...
* JSM コマンドおよびメッセージ・フィールドの定義DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(020)DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(256)
*フィールドとリストを定義して、フィールド/列のマッピングを示すDEFINE FIELD(#FIELD) TYPE(*CHAR) LENGTH(010)DEFINE FIELD(#COLUMN) TYPE(*CHAR) LENGTH(030)DEF_LIST NAME(#MAPLST) FIELDS(#FIELD #COLUMN) TYPE(*WORKING)
*クエリ・データが返されるフィールドとリストの定義DEFINE FIELD(#COL1) TYPE(*CHAR) LENGTH(010)DEFINE FIELD(#COL2) TYPE(*CHAR) LENGTH(020)DEFINE FIELD(#COL3) TYPE(*DEC) LENGTH(008) DECIMALS(0)DEFINE FIELD(#COL4) TYPE(*DEC) LENGTH(012) DECIMALS(2)DEF_LIST NAME(#WRKLST1) FIELDS(#COL1 #COL3) TYPE(*WORKING)DEF_LIST NAME(#WRKLST2) FIELDS(#COL1 #COL2 #COL4) TYPE(*WORKING)
*マッピングの定義CHANGE FIELD(#FIELD) TO(COL1)CHANGE FIELD(#COLUMN) TO(ID)ADD_ENTRY TO_LIST(#MAPLST)CHANGE FIELD(#FIELD) TO(COL2)CHANGE FIELD(#COLUMN) TO(NAME)ADD_ENTRY TO_LIST(#MAPLST)CHANGE FIELD(#FIELD) TO(COL3)CHANGE FIELD(#COLUMN) TO(AGE)ADD_ENTRY TO_LIST(#MAPLST)CHANGE FIELD(#FIELD) TO(COL4)CHANGE FIELD(#COLUMN) TO(SALARY)ADD_ENTRY TO_LIST(#MAPLST) CHANGE FIELD(#JSMCMD) TO('SET PARAMETER(*MAP) SERVICE_LIST(FIELD,COLUMN)')USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #MAPLST) CHANGE FIELD(#JSMCMD) TO('EXECUTE QUERY(SELECT ID,NAME,AGE,SALARY FROM TBLNAME)')USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG) USE BUILTIN(JSM_COMMAND) WITH_ARGS('READ SERVICE_LIST(COL1,COL3) SCROLL(*NO)') TO_GET(#JSMSTS #JSMMSG #WRKLST1) USE BUILTIN(JSM_COMMAND) WITH_ARGS('READ SERVICE_LIST(COL1,COL2,COL4)') TO_GET(#JSMSTS #JSMMSG #WRKLST2)
...
* JSM コマンドおよびメッセージ・フィールドの定義Define Field(#JSMSTS) Type(*CHAR) Length(020)Define Field(#JSMMSG) Type(*CHAR) Length(256)Define Field(#JSMCMD) Type(*CHAR) Length(256)Define Field(#JSMHND) Type(*Char) Length(4)
* フィールドとリストを定義して、フィールド/列のマッピングを示すDefine Field(#FIELD) Type(*Char) Length(010)Define Field(#COLUMN) Type(*Char) Length(030)Def_List Name(#MAPLST) Fields(#FIELD #COLUMN) Type(*Working)
* クエリ・データが返されるフィールドとリストの定義Define Field(#COL1) Type(*Char) Length(010)Define Field(#COL2) Type(*Char) Length(020)Define Field(#COL3) Type(*Dec) Length(008) Decimals(0)Define Field(#COL4) Type(*Dec) Length(012) Decimals(2)Def_List Name(#WRKLST1) Fields(#COL1 #COL3) Type(*Working)Def_List Name(#WRKLST2) Fields(#COL1 #COL2 #COL4) Type(*Working)
* マッピングの定義#FIELD := COL1#COLUMN := IDAdd_Entry To_List(#MAPLST)#FIELD := COL2#COLUMN := NAMEAdd_Entry To_List(#MAPLST)#FIELD := COL3#COLUMN := AGEAdd_Entry To_List(#MAPLST)#FIELD := COL4#COLUMN := SALARYAdd_Entry To_List(#MAPLST) #JSMCMD := 'Set Parameter(*Map)'Use Builtin(JSMX_COMMAND) With_Args(#JSMHND #JSMCMD) To_Get(#JSMSTS #JSMMSG #MAPLST)
...
* 列 1, 2, & 4 (ID、名前、給与) の読み込みUse Builtin(JSMX_COMMAND) With_Args(#JSMHND 'Read Scroll(*NO)') To_get(#JSMSTS #JSMMSG #WRKLST2)