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

V7R3环境下通过CRTSQLRPGI实现ILE RPG嵌入式SQL程序按引用绑定咨询

ILE RPG嵌入式SQL程序按引用绑定服务程序解决方案

方案1:分步编译(兼容性最高,所有版本通用)

不要通过CRTSQLRPGI直接生成*PGM对象,拆分为两步编译即可使用CRTPGM的BNDSRVPGM参数实现按引用绑定:

  • 第一步:用CRTSQLRPGI将调用程序源码编译为*MODULE对象,嵌入式SQL预编译逻辑不受影响:
    CRTSQLRPGI OBJ(你的库名/SNI600V) SRCFILE(你的库名/QRPGLESRC) OBJTYPE(*MODULE) /* 其他你常用的SQL编译参数,比如COMMIT、TGTRLS等 */
    
  • 第二步:用CRTPGM命令绑定模块生成最终程序,指定要按引用绑定的服务程序:
    CRTPGM PGM(你的库名/SNI600V) MODULE(你的库名/SNI600V) BNDSRVPGM(你的库名/SNILOG) DFTACTGRP(*NO) ACTGRP(*CALLER) /* 其他程序参数 */
    

方案2:直接在控制选项指定绑定服务程序(V7R2及以上版本支持,你的V7R3环境可用)

ILE RPG从V7R2版本开始就已在ctl-opt控制语句中支持BNDSRVPGM参数,直接在源码头部的控制语句添加即可,不需要分步编译:

ctl-opt 
  dftactgrp(*no)
  bnddir('SNI_BNDDIR')
  bndsrvpgm(SNILOG); // 这里指定要按引用绑定的服务程序,多个服务程序用空格分隔

添加后直接用CRTSQLRPGI OBJTYPE(*PGM)命令一步编译即可,系统会自动按引用绑定指定的服务程序。

绑定结果验证

编译完成后执行DSPPGM PGM(你的库名/SNI600V)命令,查看「服务程序」列表,如果能看到SNILOG条目,说明已经是按引用绑定,此时删除SNILOG服务程序后调用程序会直接报错,符合要求。


内容的提问来源于stack exchange,提问作者Íñigo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:36:04