免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3794 | 回复: 12
打印 上一主题 下一主题

再请教关于QCMDEXC的问题(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-11 17:33 |只看该作者 |倒序浏览
在RPGLE中,CALL      'QCMDEXC' 的参数是否必须
为常量,不能为变量?
CALL      'QCMDEXC'            
PARM                    cmd   
PARM                    cmdLen

如果不能,请问如何在RPGLE中运行CL COMMAND?

论坛徽章:
0
2 [报告]
发表于 2004-11-11 17:37 |只看该作者

再请教关于QCMDEXC的问题(已解决)

你应该先试试再来问

或者到IBM信息中心搜索一下QCMDEXEC的相关描述

答案其实不用想,你CALL任何一个程序的参数都可以是常量或变量

论坛徽章:
0
3 [报告]
发表于 2004-11-11 17:42 |只看该作者

再请教关于QCMDEXC的问题(已解决)

我也这么想呀,但试了不行才来问大虾们呀

论坛徽章:
0
4 [报告]
发表于 2004-11-11 17:44 |只看该作者

再请教关于QCMDEXC的问题(已解决)

把你的代码发出来看看吧

论坛徽章:
0
5 [报告]
发表于 2004-11-11 18:08 |只看该作者

再请教关于QCMDEXC的问题(已解决)

代码其实好简单 的,如下:
                              
D cmdLen          S              3P 0                                 
*                                                                     
*                                                                     
C                   EXSR      #MAIN                                    
C                   EVAL      *INLR=*ON                                
C                   RETURN                                             
*                                                                     
*                                                                     
CSR   #MAIN         BEGSR                                             
C                   EVAL      cmdLen=%len(%trim(cmdstr))                  
C                   CALL      'QCMDEXC'                                
C                   PARM                    cmdstr                        
C                   PARM                    cmdLen                     
CSR                 ENDSR                                             
*                                                                     
*                                                               
CSR   *INZSR        BEGSR                                         
C     *ENTRY        PLIST                                         
C                   PARM                    cmdStr          100   
CSR                 ENDSR

论坛徽章:
0
6 [报告]
发表于 2004-11-11 18:20 |只看该作者

再请教关于QCMDEXC的问题(已解决)

第二个参数的长度好像是固定的(rplge中),应该是15p 5吧

论坛徽章:
0
7 [报告]
发表于 2004-11-11 18:32 |只看该作者

再请教关于QCMDEXC的问题(已解决)

果然是高手!改成
D cmdLen S 15P 5
就不报错了;
不过还有个疑问:
CALL PGM(XXXXX) PARM('CALL xxxx')时,
传进来的参数CMDSTR的内容不仅仅是'CALL XXXX',后面还跟了一些字符,为什么呀

论坛徽章:
0
8 [报告]
发表于 2004-11-11 18:39 |只看该作者

再请教关于QCMDEXC的问题(已解决)

没明白,最好能把你看到的贴出来,大家好研究研究,呵呵

论坛徽章:
0
9 [报告]
发表于 2004-11-11 18:52 |只看该作者

再请教关于QCMDEXC的问题(已解决)

上面那个源程序的名字叫PGM1,编译通过后
CALL PGM(PGM1) PARM('CALL ZLINITC')
程序是没有报错,但CALL ZLINITC并没有执行;
我通过DEBUG看到传入PGM1的参数
CMDSTR的内容为:
CMDSTR =                                                               
          ....5...10...15...20...25...30...35...40...45...50...55...60
     1   'call zlinitc                         PGM     o    pgm1'
    61   '  PARM     E    call zlinitc                    '

按理说应该只有'CALL ZLINITC'呀,不知道为什么后面还跟着  
PGM      0    PGM1之类的东西

论坛徽章:
0
10 [报告]
发表于 2004-11-11 19:20 |只看该作者

再请教关于QCMDEXC的问题(已解决)

修正一下

原帖由 "cqlifu" 发表:
果然是高手!改成
D cmdLen S 15P 5
就不报错了;
不过还有个疑问:
CALL PGM(XXXXX) PARM('CALL xxxx')时,
传进来的参数CMDSTR的内容不仅仅是'CALL XXXX',后面还跟了一些字符,为什么呀


还是要报错的, CPF0006 unmonitored;
但确实也要定义 cmdLen 为 15P 5才行;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP