请问有没有办法把一个表里的记录写到一个源代码里?~~~~
请问有没有办法把一个表里的记录写到一个源代码里?~~~~
比如MYLIB里有一个MYPF01,
是一个含有r1,r2,r3三个字段的表,UNIQUE Key为r1,
如何写程序把这个表里的记录写到
MYLIB/MYSRCF/Mymember1里面呢?
这里先行谢过!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
谢谢诸位!
不好意思,这几年用AS400时断断续续的用,而不是一直不间断的连续钻研,水平让大家见笑了。
我请教的这个功能有两个作用,一是自动生成源代码,二是我的想法,也是我这次真实的用意是:
把记录写到一个源代码里,然后下载供其他系统使用。
我知道FTP的,quote type c 1381是可以保证源代码下载的,所以就想用这种方法试验一下
当然别的下载方法也有,诸如用Client access,或者CPYTOIMPF命令生成什么东西再下载,
但对我这次的任务不合适,所以我就想能不能走这条路。
所以请教大家,谢谢!
如果有把PF文件数据直接FTP下的方法更好,
我用CPYTOIMPF在源码中生成后的东西,不知为什么FTP的时候
有些表可以,有些就说码制转换错误,总是不成
谢谢大家
只是下载不必用SOURCE PF吧?普通的PF更好用。
我的C程序写LOG就是SRCPF,member名字就包含启动JOB的日期,在C程序中就用fprintf写。
SRCPF不一定全是源代码。我的INI格式配置文件、通讯日志文件等全是SRCPF
楼主的需求还是很常见的,例如把PF的记录转换成 CSV 格式放入 SRCPF中,供FTP下载到UNIX、WINDOWS机器中
不过楼主6年前就注册,却对AS/400 SRCPF的SRCDAT不知道什么意思,太说不过去了。不会连SEU都没用过吧?
SRCDAT: Date of last update of record.
楼主应该学会自己上网查这类信息。我们可以交流开发经验,没有必要帮你查资料吧?呵呵
一个程序如果写成超出6位数代码行,我想,也是垃圾啦。仅做数据记录存储,可以用pf类型的。
用rpgle程序处理,可以用个ds的数组来装载输入参数指针类型引入的参数串,如一个pf-src下的所有members。这样做,易于代码简化、可读性、可操作性较强。cl就无法处理数组。这只是个人观点。如果应用的确需要cl处理,就只能按照设计规范和流程来处理。
[ 本帖最后由 passthru 于 2009-12-8 10:35 编辑 ]
srcdat是你用seu编辑的时候系统放作业日期在里面。不知道你写数据进source file有什么用。通常有些动态生成程序的程序,生成源代码的第4代语言有这种要求。有时候用程序内调用ftp也需要用到它。
行号其实没有什么用的,除非你生成源代码用于编译,编译列表需要用到它。
那个日期更加是 reference only.
超过32760行左右,你就不能用SEU编辑了
超过999999行,行号就不可能是唯一的了。根据你的用途,可能没有什么关系。
[ 本帖最后由 franliu 于 2009-12-8 10:15 编辑 ]
谢谢楼上两位!还有些不明白的地方:
用STRSQL随便看了一下,
第一个,SRCSEQ,应该是源代码的行号,
第三个,SRCDTA,应该是每一行的源码内容,
第二个,SRCDAT,这个的内容是啥意思呢?
SRCSEQ应该是唯一键字吧?6位数,那么有没有可能超过9999.99行呢?
比方说如果是一个上千万条记录的表呢?
三楼先生的意思是让我写成一个模块,在模块里面将表内容写到源码里,然后动态调用它是吗?
多谢诸位指教!
首先先确立一个疑问:
楼主的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 编辑 ]
原程序也就是一个有三个子段的文件。
字段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 编辑 ]