免费注册 查看新帖 |

Chinaunix

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

请问有没有办法把一个表里的记录写到一个源代码里?~~~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-07 23:44 |只看该作者 |倒序浏览
请问有没有办法把一个表里的记录写到一个源代码里?~~~~

比如MYLIB里有一个MYPF01,

是一个含有r1,r2,r3三个字段的表,UNIQUE Key为r1,

如何写程序把这个表里的记录写到

MYLIB/MYSRCF/Mymember1里面呢?

这里先行谢过!

论坛徽章:
0
2 [报告]
发表于 2009-12-08 08:09 |只看该作者

回复 #1 letusgoup 的帖子

原程序也就是一个有三个子段的文件。

字段1:   SECSRQ   ZONED DECIMAL 6.2
字段2:     SECDAT    ZONED DECIMAL 6.,0
字段3:     SRCDTA    CHARACTER 80 OR LONGER

你用OVRDBF 指定你要存取的 MEMBER, 在RPG里面就可以像使用普通的文件一样处理它了。

[ 本帖最后由 franliu 于 2009-12-8 11:22 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-12-08 09:09 |只看该作者
首先先确立一个疑问:
楼主的MYLIB/MYSRCF,这里的‘MYSRCF’是pf-src吗?

如果是仅仅是pf。二楼的方法是基本的,也是通用的。补充一下,还有一种方法可以在rpgle中在F表中用keyword:
FFile1     if   e          k   Disk    Extfile(FilNam) ExtMbr(MbrNam)
F                                            UsrOpn  
这里的FilNam和MbrNam是传入参数。

如果是pf-src,如果定义pf-src的长度是112,这时这个pf-src中存在三个字段:
SRCSEQ     NUMERIC    6,2
SRCDAT      NUMERIC    6,0
SRCDTA      CHARACTER-O    100
这时pf-src member的表现形式是程序名,记录的表现形式是每行的代码。

用rpgle定义Extfile(FilNam) ExtMbr(MbrNam)  UsrOpn的好处就是,MbrNam(s)即多members,可以通过参数传入,close file后,把MbrNam用新的member输入,在open file,就可以达到用不同的member,动态地打开文件的目的。 用ovrdbf的方法则,只能通过cl和rpgle循环来动态打开文件。

[ 本帖最后由 passthru 于 2009-12-8 09:18 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-12-08 09:46 |只看该作者

thanks

谢谢楼上两位!还有些不明白的地方:

用STRSQL随便看了一下,

第一个,SRCSEQ,应该是源代码的行号,
第三个,SRCDTA,应该是每一行的源码内容,
第二个,SRCDAT,这个的内容是啥意思呢?

SRCSEQ应该是唯一键字吧?6位数,那么有没有可能超过9999.99行呢?
比方说如果是一个上千万条记录的表呢?

三楼先生的意思是让我写成一个模块,在模块里面将表内容写到源码里,然后动态调用它是吗?

多谢诸位指教!

论坛徽章:
0
5 [报告]
发表于 2009-12-08 10:14 |只看该作者

回复 #4 letusgoup 的帖子

srcdat是你用seu编辑的时候系统放作业日期在里面。不知道你写数据进source file有什么用。通常有些动态生成程序的程序,生成源代码的第4代语言有这种要求。有时候用程序内调用ftp也需要用到它。
行号其实没有什么用的,除非你生成源代码用于编译,编译列表需要用到它。

那个日期更加是 reference only.

超过32760行左右,你就不能用SEU编辑了

超过999999行,行号就不可能是唯一的了。根据你的用途,可能没有什么关系。

[ 本帖最后由 franliu 于 2009-12-8 10:15 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-12-08 10:26 |只看该作者
SRCDAT:   Date of last update of record.
楼主应该学会自己上网查这类信息。我们可以交流开发经验,没有必要帮你查资料吧?呵呵

一个程序如果写成超出6位数代码行,我想,也是垃圾啦。仅做数据记录存储,可以用pf类型的。

用rpgle程序处理,可以用个ds的数组来装载输入参数指针类型引入的参数串,如一个pf-src下的所有members。这样做,易于代码简化、可读性、可操作性较强。cl就无法处理数组。这只是个人观点。如果应用的确需要cl处理,就只能按照设计规范和流程来处理。

[ 本帖最后由 passthru 于 2009-12-8 10:35 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-12-08 11:01 |只看该作者
楼主的需求还是很常见的,例如把PF的记录转换成 CSV 格式放入 SRCPF中,供FTP下载到UNIX、WINDOWS机器中

不过楼主6年前就注册,却对AS/400 SRCPF的SRCDAT不知道什么意思,太说不过去了。不会连SEU都没用过吧?

论坛徽章:
0
8 [报告]
发表于 2009-12-08 11:06 |只看该作者
原帖由 franliu 于 2009-12-8 10:14 发表
srcdat是你用seu编辑的时候系统放作业日期在里面。不知道你写数据进source file有什么用。通常有些动态生成程序的程序,生成源代码的第4代语言有这种要求。有时候用程序内调用ftp也需要用到它。
行号其实没有什 ...


我的C程序写LOG就是SRCPF,member名字就包含启动JOB的日期,在C程序中就用fprintf写。
SRCPF不一定全是源代码。我的INI格式配置文件、通讯日志文件等全是SRCPF

论坛徽章:
0
9 [报告]
发表于 2009-12-08 11:24 |只看该作者

回复 #7 ux400 的帖子

只是下载不必用SOURCE PF吧?普通的PF更好用。

论坛徽章:
0
10 [报告]
发表于 2009-12-08 11:27 |只看该作者

谢谢诸位!

谢谢诸位!

不好意思,这几年用AS400时断断续续的用,而不是一直不间断的连续钻研,水平让大家见笑了。

我请教的这个功能有两个作用,一是自动生成源代码,二是我的想法,也是我这次真实的用意是:

把记录写到一个源代码里,然后下载供其他系统使用。


我知道FTP的,quote type c 1381是可以保证源代码下载的,所以就想用这种方法试验一下

当然别的下载方法也有,诸如用Client access,或者CPYTOIMPF命令生成什么东西再下载,

但对我这次的任务不合适,所以我就想能不能走这条路。

所以请教大家,谢谢!

如果有把PF文件数据直接FTP下的方法更好,

我用CPYTOIMPF在源码中生成后的东西,不知为什么FTP的时候
有些表可以,有些就说码制转换错误,总是不成


谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP