仅当因子2上的文件名是一个程序描述文件(在文件描述规范表的22列用F标识)时,在结果字段中可以规定一个数据结构名。这时,CHAIN操作取出和因子1上的检索自变量匹配的所有记录标识中第一个记录,并把它放在数据结构中。关于在文件和数据结构之间传送数据内容,见4.3.11“文件操作”中的说明。
对WORKSTN(工作站)文件,CHAIN操作读出一个子文件记录。
对多设备文件,必须在因子2上指定一个记录格式,数据是从程序设备上读出,该设备在设备的文件说明中用“DEVID(文件名)”键字中的字段名来标识。如果没有说明此键字,数据是从最后成功地对文件执行输入的设备中读出的。
如果文件是一个输入的磁盘文件,能读出所有记录且不用规定其他的操作。如果是更新文件,如果没有规定N扩展操作,那么锁住所有的记录。
如果要从一个更新磁盘文件上做读操作,可以规定一个扩展N操作,指出在读记录时不加锁(即CHAIN(N))。详细资料见ILE RPG/400程序员指南。
71和72列必须有一个指示器,当文件中没有和检索自变量匹配的记录时置为ON,73和74列的指示器,当CHAIN操作没成功时置为ON,75和76列必须空格。
当CHAIN操作成功后,要定位因子2说明的文件。这样,随后的读操作将向前或向后检索一个符合条件的记录。当CHAIN操作没有完全成功时(例如出现错误或没找到记录),因子2说明的文件必须在随后的对此文件读操作之前返回原位。(例如,用一个CHAIN或SETLL操作)。
在CHAIN操作对文件成功地执行之后,如果立即对因子2上说明的文件进行更新操作(在计算或输出规范表上),那么更新的是接收到的最后一条记录。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
C*
C* CHAIN操作从文件FILEX中读取第一条记录,它与检索自变量KEY(因子1)
C* 有同值键字。
C*
C KEY CHAIN FILEX 60
C*
C*
C* 如果没找到与检索自变量相等键字值的记录,指示器60为ON,并执行
C* 由指示器60为条件的EXSR操作。如果这样的记录找到了,程序继续执
C* 行EXSR之后的计算。
C*
C 60 EXSR Not_Found
图117 因子2有文件名的CHAIN操作。
上一页 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 下一页
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 笔记 字母 顺序 学习 操作 常用 因子 文件 记录 一个 |
注册
个人空间
