我正在尝试从没有键字段的物理文件PFILE中删除一条记录,但是我不知道为什么if子句中的语句不起作用,即使我有一条带有id=123的记录
0001.00 fPFILE UF E DISK
0002.00 DID S 8P 0
0003.00 c read rec
0004.00 c eval ID=123
0005.00 c ID CHAIN PFILE
0006.00 C EMPID DSPLY
0007.00 c IF %FOUND()
0008.00 C EMPNAME DSPLY
0009.00 c DELETE REC
0010.00 C 'DELETED' DSPLY
0011.00 c ELSE
0012.00 c 'NOTFOUND' DSPLY
0013.00 c ENDIF
0014.00 C SETON这是我的PFILE
0001.00 R REC
0002.00 EMPID 7P 0
0003.00 EMPNAME 15A 发布于 2016-09-28 16:10:02
Rant:
你让我得了眼癌。
答案:
%chain操作码用于通过"Key“或"RRN”访问记录。
您将表中的ID列与"RRN“混淆了
IBM Knowledge Center - CHAIN (Random Retrieval from a File)
发布于 2016-10-15 18:32:29
您可以使用chain来访问带有密钥或记录号的文件。
fPFILE UF E DISK
DID S 8P 0
/free
id = 123;
chain id rec;
if %found;
delete rec;
endif;
*inlr = '1';
return;
/end-free发布于 2016-10-24 23:15:13
要链接到一个文件,你必须告诉编译器它是键控的。在文件规范中应该有一个K。
0001.00 fPFILE UF E DISK
0002.00 DID S 8P 0
0003.00 c read rec
0004.00 c eval ID=123 https://stackoverflow.com/questions/39738216
复制相似问题