关于recno的问题

发布于 2022-08-19 05:50:45 字数 685 浏览 12 评论 5

程序中这样定义文件
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

寻找一个思念的角度 2022-08-29 17:38:09

找了一下程序,File format是F的,要write的时候,有先OPEN的动作。

这只RPG程序转成RPGLE后,自动出现了USROPN的关键字

LZ看看你的程序里面有没有OPEN这个file?

若能看破又如何 2022-08-29 15:50:27

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类型的不常用,不熟悉
待正解 :)

寄居者 2022-08-29 09:05:25


咋这问题还存在!!

轻拂→两袖风尘 2022-08-28 14:59:48

本帖最后由 passthru 于 2012-05-02 10:18 编辑

两个错误:

1)如果rrno是rrn,即相对记录号,这是os400自动分配的;

2)对程序描述文件,不能用write,要用O表,且rpgle代码中用except代替write。

放飞的风筝 2022-08-26 15:49:23

这个怎么解决的啊?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文