【问题标题】:IBM i RPG Program not doing anythingIBM i RPG 程序不做任何事情
【发布时间】:2013-06-10 02:00:56
【问题描述】:

以下代码在 CRTBNDRPG 下编译但运行时卡在只有 1 个 I/O。

我要做的就是 - 我们所有的表的订单号都是 8,但这个文件的订单号是 10。所以我只是创建了 2 个字段,我需要一个将其设为 8,另一个就可以了.任何想法为什么这个小程序没有起飞?

FMFHHMH    IF   E             DISK                                    
F* output file                                                        
FMFHHMHPK  O  A E             DISK                                    
D*EXTSHP           S             13  6                                
D                                                                     
C                                                                     
C                   READ      MFHHMH                                  
C                   Dow       NOT %EOF(MFHHMH)                        
C                   iF        %found                                  
c                   MOVE      MHORDR        MHORDp                    
c                   MOVE      MHZONE        MHZONE                    
C                   WRITE     MFHHMHP                                 
C                   READ      mfhhmh                                  
C                   End                                               
C                   END                                               
C                   SETON                                        LR   

【问题讨论】:

  • 永远不要只使用END来结束一个命令组,而是使用ENDIFENDDO等特定的结束命令

标签: ibm-midrange rpgle


【解决方案1】:

您创建了一个无限循环,其中NOT %EOFTRUE,但%FOUNDFALSE

请注意%FOUND 的文档,它不反映READ 操作的状态。

您的代码中不需要IF 条件,因为DOW 循环足以保证您有记录。

【讨论】:

    【解决方案2】:

    詹姆斯在第一个答案中说的没错 .. 使用操作码 READ 你可以使用 IF %EOF 但你不能使用 IF %FOUND .... 将 %FOUND 与 CHAIN 一起使用

    如果两个表结构相似,也可以使用sql语句

    插入到 MFHHMHPK (选择 * from MFHHMH whereeveryyouwant)

    【讨论】:

    • 是的,如果可能的话,应该使用 SQL,因为如果仅在 db 层中,这种简单的东西可以大大更快。
    • 让我们看看... 1 条 SQL 语句,或 12 行 RPG。 SQL 是更好的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多