在qshell里运行cobol程序的输出问题
我是一个标准的cobol+as400的菜鸟。。最近的一个项目的porting,要把cobol程序移植到400,但是需要在qshell下运行,并得到结果。
问题是,qshell里面运行编译好的程序,就是得不到结果(结果是用display打印到标准输出的)。。而用call方式在job log里可以看到结果,
terminal session 就是闪一下。。。实在不知道怎么回事。。
我试了试最简单的hello world 也是一样。。
大家帮帮忙吧!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Running Programs within Qshell
Qshell doesn't use the call command to start a program. Instead, you must type the program's name, in IFS style. The following example illustrates how a program can run within Qshell:
/qsys.lib/mylib.lib/myshellpgm.pgm
-------------
Usage for database operation
CL has a major restriction of using Data Manipulation Language (DML) such as Update, insert or selected delete with the DB2/400 database. To achieve this, we use roundabout ways such as RUNSQLSTM, writing new RPG program, etc.
Qshell makes life easier by using the following command:
Syntax: QSH CMD('db2 "<Db2/400 sql statement">)
Example:
QSH CMD('db2 "UPDATE MYLIB.MYFILE SET MYFLD = ''P''" ')
QSH CMD('db2 "INSERT INTO MYLIB.MYTABLE VALUES(''jagannath'', 104.20)"')
Things to note:
Usage for IFS operation
It is always a headache to handle IFS files using RPG programs. We have to write separate RPG programs using C APIs to handle this functionality. But QShell commands ease this process.
Syntax:
To replace the contents of the IFS and write the fresh text
QSH CMD('print It is working > /home/mydir/myfile.txt')
To append to the contents of the IFS file in next line
QSH CMD('print It is working >> /home/mydir/myfile.txt')
谢谢您,这个是因为porting的这个framework原来是在shell环境里。。。目前很多的工作已经都再qshell里做了。。
COBOL为什么要在QSH运行? 在os/400不能直接运行吗?
是的,我很多c程序也是在qsh下运行,是可以的。
qshell 是不是STRQSH 进入的那个$
我最近在QSHELL 里玩JAVA , JAVA HELLO 可以运行。
qsh 里是ASCII编码的, AS400自带的COBOL 是STREAM方式存储和编码的。