【问题标题】:AS400 duplicate fileds name different types in logical fileAS400 重复文件在逻辑文件中命名不同类型
【发布时间】:2018-05-04 08:40:28
【问题描述】:

我在我的程序中遇到问题。有 2 个物理文件将字段声明为 xxBABA。 'xx' 对于其中两个 PF 是不同的,并且这些字段具有不同的类型,一个字符另一个十进制。存在包含这两个文件的逻辑文件。

在程序中,所有字段的“xx”前缀都替换为 YY,因此有 YYBABA 字符和 YYBABA 十进制。

有没有办法从第二个获取数据?

【问题讨论】:

  • 程序是什么语言的?您可以为文件记录定义一个数据结构,并将这些字段命名为唯一的名称。
  • 或者更改逻辑以重命名两个字段之一,以避免这种情况?对我来说,这场冲突听起来像是一场等待发生的事故。 (理想情况下,如果他们做不同的事情,我会认为你会在他们的父物理上给这些字段正确地赋予不同的名称。但毫无疑问,这样做已经太晚了!)(附注:我想知道这是否是 Synon /2?)
  • 多格式逻辑在现代 RPG 中是个坏主意...

标签: ibm-midrange db2-400 rpgle rpg


【解决方案1】:

如果程序是 RPG,您可以使用 I 规范重命名一个或两个字段。

     IPF1RECFMT    
     I              XXBABA                      XXBABA#                               
     IPF2RECFMT    
     I              XXBABA                      XXBABA@

【讨论】:

    【解决方案2】:

    不,你甚至不能那样编译它。

    您可以解决此问题的一种方法是按照@RobSchember 的建议使用 I 规范重命名一个字段。从 v7.1 开始,另一种方法是在文件上放置 Qualified 关键字,并将 IO 放入数据结构中。这样,命名字段现在与它们的特定记录相关联。它看起来像这样:

    dcl-f file1       Disk Qualified;
    
    dcl-ds rec1       LikeRec(file1.record1: *input);
    dcl-ds rec2       LikeRec(file1.record2: *input);
    
    read file1.record1 rec1;
    read file1.record2 rec2;
    

    【讨论】:

      猜你喜欢
      • 2013-12-15
      • 2018-12-28
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 2011-07-20
      • 1970-01-01
      相关资源
      最近更新 更多