为什么我不能使用超过65535 RPGIV的字符长度

时间:2016-08-23 10:51:34

标签: web-services ibm-midrange rpgle rpg

我重写了以下文章,看起来我应该能够定义一个变量类型的变量,其大小限制将是16mb而不是65535个字符。

http://www.mcpressonline.com/programming/rpg/v6r1-rpg-enhancements.html

此论坛帖子表明在V6.1中可以这样做。

http://www.code400.com/forum/forum/iseries-programming-languages/rpg-rpgle/11426-character-string-max-length

D BigVarying      S               a   Len(25000000) Varying(4)

当我尝试实现此操作时,我收到以下错误,似乎我无法使用Len(25000000) Varying(4) enter image description here

也许我不明白V6.1究竟是什么意思,但是我使用命令DSPSFWRSC检查了绿色屏幕并获得了以下版本V6R1 .. enter image description here

我还使用I系统导航器进行了检查,并检查了服务器属性,它是:i5 / OS版本6版本1修改0。

我用来编译的IDE是IBM Websphere开发工作室

Version: 7.0.0
Build id: 20070202_0030

尝试编译RPGLE函数。

我是否检查了正确的版本或是否有RPG版本以及如何检查它。

你可以帮我解决一下我的困惑。

2 个答案:

答案 0 :(得分:4)

V6.1是您的操作系统版本,您可以参考V6.1 ILE RPG Language Reference here查看是否可行。我认为您正在寻找的是第185页。

我刚刚在7.2中对此进行了测试,但我没有得到同样的错误。

 D BigVarying      S               a   Len(25000000) Varying(4)
 RNF0501E Length of character item exceeds 16773104; length defaults to 16773104.
 RNF0231E Length of varying length character item exceeds 16773100; length defaults to 16773100.
   //Dcl-S BigVarying Varchar(25000000);

   BigVarying = 'Hello world';

   Return;

因此,(重复)错误提及

  

字符项长度超过16773104;长度默认为16773104。

如果您想要更大的长度,您需要更新到更新版本的IBM i - 但最大长度也是16773104,这意味着25000000无效。

答案 1 :(得分:3)

虽然RPGLE支持6.1前进的16MB变量,但你在6.1 ..

你有两个问题:

  • 25000000(23.8MB)大于16773104(~16MB)
  • Websphere Development Studio v7(WDSc)比IBM i 6.1更早(您的构建日期是2007年,您引用的文章于2008年发布)。因此,您的IDE无法识别新关键字和新的最大尺寸。

问题#2不是交易破坏者,您可以简单地忽略IDE中的错误并成功地在服务器上进行编译。如果您使用的是绿屏编辑器SEU,那么您必须像IBM在6.1停止增强SEU一样。