Ibm midrange 通过OPNQRYF键控访问

Ibm midrange 通过OPNQRYF键控访问,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我有一个未设置密钥的物理文件(比如X),我想根据密钥访问它。我使用了OPNQRYF和KEYFLD参数,并共享了它的ODP。在rpgle程序中,我以到达顺序打开文件X(即不在F规范中指定K)。rpg程序是否会根据密钥或到达顺序处理记录?同时,我也面临着一个奇怪的错误,当我这样做 Setll 1 XR read XR 将XR视为文件X的记录格式。它将跳过第一条记录并从第二条记录开始读取。如果您的文件未设置关键帧,它将按到达顺序读取 对于SETLL,请尝试 SETLL*LOVAL XR 它应该位于第

我有一个未设置密钥的物理文件(比如X),我想根据密钥访问它。我使用了OPNQRYF和KEYFLD参数,并共享了它的ODP。在rpgle程序中,我以到达顺序打开文件X(即不在F规范中指定K)。rpg程序是否会根据密钥或到达顺序处理记录?同时,我也面临着一个奇怪的错误,当我这样做

Setll 1 XR
read XR

将XR视为文件X的记录格式。它将跳过第一条记录并从第二条记录开始读取。

如果您的文件未设置关键帧,它将按到达顺序读取

对于SETLL,请尝试

SETLL*LOVAL XR

它应该位于第一条记录之前


如果要通过密钥访问文件,请使用所需密钥在其上创建视图或逻辑文件。然后确保在F规范中将其指定为键控文件。或者只使用SQL检索带有ORDERBY子句的记录。

如果您的文件没有键入,它将按到达顺序读取

对于SETLL,请尝试

SETLL*LOVAL XR

它应该位于第一条记录之前


如果要通过密钥访问文件,请使用所需密钥在其上创建视图或逻辑文件。然后确保在F规范中将其指定为键控文件。或者只使用SQL检索带有ORDER BY子句的记录。

在OP中建议,程序正在读取共享开放数据路径(ODP),该路径是通过开放查询文件(OPNQRYF)通过键控访问路径定义\创建的,显然是根据在键控字段(KEYFLD)参数上指定字段名。重要的是ODP,而不是“文件未设置密钥”。FWiW要定位到第一条记录,请使用
SETLL*START X
。FWiW视图不能设置关键字[除非用于创建查询ODP];SQL等价于键控LF的是[binary radix]索引。我不记得原始问题中的OPNQRYF。。要么是那样,要么就是我的咖啡太少了。或者很长时间没看到OPNQRYF了我读了一遍。。哈哈。。感谢您的评论,Charles。在OP中建议,该程序正在读取共享开放数据路径(ODP),该路径是通过开放查询文件(OPNQRYF)通过键控访问路径定义\创建的,显然是通过在键控字段(KEYFLD)参数上指定字段名。重要的是ODP,而不是“文件未设置密钥”。FWiW要定位到第一条记录,请使用
SETLL*START X
。FWiW视图不能设置关键字[除非用于创建查询ODP];SQL等价于键控LF的是[binary radix]索引。我不记得原始问题中的OPNQRYF。。要么是那样,要么就是我的咖啡太少了。或者很长时间没看到OPNQRYF了我读了一遍。。哈哈。。谢谢你的评论,查尔斯。