关于recno的问题
程序中这样定义文件
F myqtempf uf a f 50 disk usropn recno(rrno)
...
...
Ddstmpf ds 50
d fil 1 10
...
...
...
eval fil='000000'
write myqtempf dstmpf
...
程序编译能通过,然后在执行时出错了,msg信息为 i/o error cpf5006 was detected in file myqtempf.
请问这是为什么???高手指导。。谢谢!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
找了一下程序,File format是F的,要write的时候,有先OPEN的动作。
这只RPG程序转成RPGLE后,自动出现了USROPN的关键字
LZ看看你的程序里面有没有OPEN这个file?
CPF5006的错误提示是: Record not found in file &1.
Cause . . . . . : The specified record may have been deleted, it may never
have existed, or the key may have been changed.
出错应该是Write那行吧?
如果这个file是外部文件的话,write的时候应该用的是文件的Record名称。
但是你好像又在F表指定File formate 是F,用File名应该是对的。
看了一下USROPN这个关键字,说是需要显式打开file
所以,是不是file 需要手动open?
F类型的不常用,不熟悉
待正解 :)
咋这问题还存在!!
本帖最后由 passthru 于 2012-05-02 10:18 编辑
两个错误:
1)如果rrno是rrn,即相对记录号,这是os400自动分配的;
2)对程序描述文件,不能用write,要用O表,且rpgle代码中用except代替write。
这个怎么解决的啊?