You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否直接从IFS位置编译PF(物理文件)或DSPF?

从IFS直接编译PF或DSPF的可行方案

CRTPF(创建物理文件)和CRTDSPF(创建显示文件)本身确实不支持直接指定IFS路径读取源文件,但有几种实用方法可以实现类似需求:

方法1:先将IFS源文件导入QSYS源库再编译

这是最传统的流程,分三步操作:

  • 先在QSYS中创建对应类型的源物理文件(比如DDS源文件QDDSSRC):
    CRTSRCPF FILE(MYLIB/QDDSSRC) RCDLEN(112)
    
  • 把IFS中的DDS源文件复制到源物理文件的成员里:
    CPYFRMSTMF FROMSTMF('/home/user/mypf.dds') TOMBR('/QSYS.LIB/MYLIB.LIB/QDDSSRC.FILE/MYPF.MBR') MBROPT(*REPLACE) STMFCODPAG(*FILE)
    
  • 最后用常规命令编译:
    # 编译PF
    CRTPF FILE(MYLIB/MYPF) SRCFILE(MYLIB/QDDSSRC) SRCMBR(MYPF)
    
    # 编译DSPF
    CRTDSPF FILE(MYLIB/MYDSPF) SRCFILE(MYLIB/QDDSSRC) SRCMBR(MYDSPF)
    

方法2:用RUNSQLSTM直接执行IFS中的SQL脚本(仅适用于PF)

如果你的物理文件可以用SQL的CREATE TABLE定义,完全不需要DDS:

  • 先在IFS中写好SQL脚本(比如/home/user/create_pf.sql),内容是创建表的SQL语句
  • 直接运行脚本创建PF:
    RUNSQLSTM SRCSTMF('/home/user/create_pf.sql') COMMIT(*NONE)
    

方法3:使用ILE的CRTBNDDDS命令(推荐)

这是最接近CRTBNDRPG用法的方案,CRTBNDDDS支持直接指定IFS路径的源文件,既能编译PF也能编译DSPF:

  • 编译PF:
    CRTBNDDDS BNDDDS(MYLIB/MYPF) SRCSTMF('/home/user/mypf.dds')
    
  • 编译DSPF:
    CRTBNDDDS BNDDDS(MYLIB/MYDSPF) SRCSTMF('/home/user/mydspf.dds') FILETYPE(*DSPF)
    

这个命令会直接读取IFS里的DDS源文件完成编译,不需要中间的导入步骤,和你用CRTBNDRPG的体验一致。

注意点

  • 使用CRTBNDDDS时,注意源文件的编码要和系统环境匹配,可通过STMFCODPAG参数指定编码页
  • 复杂DDS定义的兼容性没问题,处理逻辑和传统的CRTPF/CRTDSPF一致

内容的提问来源于stack exchange,提问作者Kunal Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 15:32:40