在qshell中访问RPG / . pgm命令语言(CL)语法



这个问题是关于i5/OS(大型机、as400等)及其用CL编写的程序的。如何在没有管理员权限的情况下,在应用程序本身之外访问给定的.PGM扩展文件(RPGLE)中的参数?

我已经尝试了所有可用的和相关的功能在as400应用程序本身。它们都不起作用。至少不能用我的用户权限。

总的来说,这个大型机应用程序利用了库中的数百个库。向其中添加数千个文件,您将面临一项艰巨的任务,即在有限的菜单功能/程序之外访问相关数据。PGM文件扩展名),您被授予访问权限

坦率地说,这些节目烂透了。我非常喜欢使用SSH连接和qshell来执行SQL语句,以便在库中调出表。我可以自定义访问哪些表以及如何获取信息。

这个特殊的程序作为一个基本查询,从几个表中访问数据,在一个新表中显示数据,并允许基于有限数量的标准进行实时过滤。

我已经尝试了CAT命令,如下所示:

$ cat someprogram (还有一些带和不带扩展的变体,我忘了)

但是这些只是给我错误代码

我也尝试过在db2提示符下执行SQL语句,但是我得到了SQL STATE返回代码(这不是一个. file扩展名,所以是的,它不会像选择表那样工作,这是有道理的)。

我更喜欢在qshell中访问数据。也许我做错了什么?非常感谢任何帮助。谢谢你

Qshell是本机的另一种操作环境,因为没有更好的名称,我将称之为本机。Qshell与AIX类似,但并非完全相同。Qshell不将本机程序的输出映射到标准输出,因此您不能通过管道访问本机程序的输出。

如果一个本机程序写入到一个显示,唯一合理的方式来重定向输出是屏幕抓取它,这可以通过编写自己的tn5250模拟器,拦截屏幕输出,并把它放在你想要它去的地方,包括标准输出。如果您不熟悉5250通信协议,这不是特别简单。

你有两个比较实际的选择。1)编写许多SQL存储过程,这些存储过程耦合在一起,复制嵌入在您想要执行的程序中的业务逻辑。2)要求中级开发人员将业务逻辑重构为服务程序(他们应该理解这一点),并编写一个存储过程供您使用。这样,中间程序和外部消费者(您)都可以重用相同的业务逻辑。当逻辑发生变化时(不是if),它将在一个地方发生变化,所有的消费者都将看到新的规则。

相关内容

  • 没有找到相关文章

最新更新