免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: CHyacinth
打印 上一主题 下一主题

请问如何做到只备份系统中的源程序文件 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-06-23 10:27 |只看该作者
如何做到只备份系统中的源程序文件


实现功能:找出系统中的所有源程序文件(PF - SRC),并且备份到磁带机上。

第一步:
用DSPFD命令把选择库中所有PF属性的文件输出到一个文件中,比如:
DSPFD FILE(BLOG/*ALL) TYPE(*BASATR) OUTPUT(*OUTFILE) FILEATR(*PF) OUTFILE(BLOG/FILNAM2)

选择库可选项有
*LIBL   
*CURLIB  
*USRLIBL
*ALLUSR  
*ALL     


第二步:
先复制一个同样结构的文件,比如:
CRTDUPOBJ OBJ(FILNAM2) FROMLIB(BLOG) OBJTYPE(*FILE) TOLIB(BLOG) NEWOBJ(FILNAM3) DATA(*NO)


第三步
从FILNAM2选择FILETYPE字段(ATDTAT)等于S(源码)的记录插入到新文件中FILNAM3. 这里记录都是只含有源码的库和source.
insert into blog/filnam3                       
SELECT * FROM blog/filnam2 WHERE ATDTAT ='S'   

第四步
做一CLP程序(前面几个步骤可以加进CLP中),循环读文件备份即可,比如:

LOOP:       RCVF       RCDFMT(QWHFDBAS)  /* Read a file record */   
             MONMSG     MSGID(CPF0864) EXEC(GOTO EOF)   
SAVOBJ       OBJ(&ATFILE) LIB(&ATLIB) DEV(TAP01)
             GOTO       CMDLBL(LOOP)                              


上面效率低,可以先拼接两个字符串,一个库名串,一个文件名串. 比如另外一种方法:
LOOP:       RCVF       RCDFMT(QWHFDBAS)  /* Read a file record */   
            MONMSG     MSGID(CPF0864) EXEC(GOTO EOF)   
           CHGVAR     VAR(&FILNAMA) VALUE('&FILNAMA *CAT '' '' +  
              *CAT &ATFILE')      
            CHGVAR     VAR(&FILLIBA) VALUE('&FILLIBA *CAT '' '' +  
              *CAT &ATLIB’)                           
(可考虑去除重复库名)
             GOTO       CMDLBL(LOOP)
            SAVOBJ OBJ(&FILNAMA) LIB(&FILLIBA) DEV(*SAVF) SAVF(BLOG/SRCALL)


可参考这篇文章:
http://blog.chinaunix.net/u/2405/showart.php?id=106073

此帖最后一步没有经过测试, 楼主不妨试试.

[ 本帖最后由 blogliou 于 2006-6-23 10:48 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2006-06-23 11:56 |只看该作者
原帖由 overing 于 2006-5-30 16:07 发表
接楼上两层的,有什么办法能找到RPGLE的源码呢?好象没有反编译的命令


dsppgm -->Enter-->Enter-->5
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP