当前位置:  开发笔记 > 数据库 > 正文

如何在CL程序中运行SQL(AS400)

如何解决《如何在CL程序中运行SQL(AS400)》经验,为你挑选了1个好方法。

(让我先说一下,我对AS400和RPGLE以及CL编程都是新手.我对SQL非常了解,但在与AS400一起使用时却没有.)

这看起来应该很简单.

在年终,我们必须将仓库表更新为当前新的一年.这是一个手动过程,去STRSQL并运行

 update rco set ccfscy = '2017' where crsts = 'A'

这是过去40年来同一个人所做的,他们现在正在退休.我的老板希望这个成为一个CL程序,在没有人手动运行STRSQL命令的情况下完成它,并且它可以集成到年终过程中.

所有CL程序所要做的就是提示您想要更改仓库文件的年份,并在屏幕上输入日期后,它将运行SQL程序并根据SQL命令更新记录.

有人可以指点我的方向,我可以学习更多关于使用CL程序来完成这个过程吗?

谢谢.

Thomas J Cusick,系统程序员



1> Charles..:

假设您使用的是当前支持的IBM i版本.

IBM在几个版本之前添加了一个RUNSQL CL命令......

因此,完整的CL程序如下所示:

pgm
  runsql sql('update rco set ccfscy = ''2017'' where crsts = ''A''')
endpgm

但如果你把这一年作为一个参数传递,那会更好......

pgm parm(&year)
  dcl &year *char 4
  dcl &stmt *char 50
  /* using "e makes life easier than doubling quote literals */
  dcl "e *char 1 value('''')

  chgvar &stmt value('update rco set ccfscy =' *cat "e *cat &year *cat +
     "e *cat 'where crsts = ' *cat "e *cat 'A' *cat "e)

  runsql sql(&stmt)

endpgm

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有