目前,农信银行核心rpgle程序变量几乎都没有用qualifiedds管理起来,程序入口plist或原型接口又没有统一,也没有用ds或指针管理起来。就像断了章节的书,阅读起来不舒服。

这样能够提升rpgle运行的效率吗?答案肯定是否定的。

想想看,如果输入参数用ds或指针引用的ds,参数进入程序后,又用ds结构传输给ds化的程序变量,而这些ds化的程序变量在程序中使用范围是有限的。在自由格式下,ds可以用eval-corr Ds_2 = Ds_1 ;即入口参数Ds_1中的数据项仅仅传输程序需要的程序变量Ds_2的数据项,而无需一条一条的moveeval。程序中通过变量Ds_2下的数据项得到的结果归集到变量的Ds_2,再通过eval-corr指令一下子就把变量结果Ds_1输出给结果Ds_3数据结构。这样做,效率有多高呀!

我们都知道,数据表字段名与输入或输出参数ds的字段名相同,而数据库表的字段名又遵循数据字典的字段含义和定义,程序用Ds中同名字段对数据库表的相关操作。这样,程序代码执行效率会大大提高,同时,又没有拼写上错误的麻烦。

现在,农信400er,无论是甲方还是乙方,都深陷这些无头绪的代码之中。已经脱离了IBM事先规划好的系统架构轨道。

Dsqualified就是架通程序代码与数据库表的桥梁,编程高效率的因素,就是qualified的数据结构Ds

数据库字段名、copybook ds的字段名、程序变量名,三者做统一,用eval-corr做三种DS的传递,就会大大提升编程效率、程序执行效率和运维效率

以上就是我非常看重的dsqualified的原因

09-26 19:15