标签: ibm-midrange

AS400物理文件上的对象锁定查询

当AS400物理文件上发生对象锁定时,是否有可能知道记录锁定发生在哪条记录/数据上?

rpg rpgle ibm-midrange

0
推荐指数
1
解决办法
847
查看次数

获取ILE cobol程序的返回值

我正在尝试从 cobol 程序中的 C 程序获取返回值。然而,他们提到了这一点:

返回短语

“使用链接类型的程序调用的程序不允许使用 GIVING/RETURNING 短语。”

那么还有什么选择呢?如何在cobol程序中获取返回值?找不到。谢谢。-- 编辑我发现这个https://www.ibm.com/docs/en/rdfi/9.6.0?topic=SSAE4W_9.6.0/com.ibm.etools.iseries.ilecbl.doc/LNC2762.htm 他们表示“更改被调用程序的链接”,但我不知道该怎么做。

cobol ibm-midrange

0
推荐指数
1
解决办法
253
查看次数

在 sqlrpgle 中控制提交和回滚

大家好,有人可以告诉我如何控制 SQLRPGLE 中的提交和回滚吗?

rpg rpgle ibm-midrange

0
推荐指数
1
解决办法
709
查看次数

当 rpgle 程序正在使用该文件时,如何清除该程序中的物理文件 (CLRPFM)

我有一个 RPGLE 程序。读取并处理完文件中的所有数据后,需要以输入模式处理文件FILE1,并清除文件FILE1。

但是,当我使用 QCMDEXE api 使用命令 CLRPFM 清除文件时,它会抛出文件正在使用中的错误。

我怎样才能克服这个问题并在程序结束时清除文件。任何建议都会很有帮助。

rpg rpgle ibm-midrange

0
推荐指数
1
解决办法
506
查看次数

编译器指令无法识别

当开始编写这个 RPGLE 程序的 C 表时,我收到此错误:

Compiler directive not recognized; directive ignored
Run Code Online (Sandbox Code Playgroud)

这是我的代码,在最后六行中我收到错误。

HDatedit(*ymd) datfmt(*iso)                            
FQPRINT    O    F  132        PRINTER OFLIND(*INOV)    
DWCLICLA          S              5  0                  
DWCLINOM          S             45                     
DWCLICEL          S             15                     
DWCLISEX          S              1                     
DWCLIEMAIL        S             30                     
DWCLIESTD         S              1                     
DWCLIDEP          S              2  0                  
C*                                                     
C                   EXCEPT    CABECERA                 
C                   EXCEPT    linea                    
C*                                                     
C/EXEC SQL                                             
C+  DECLARE C1 CURSOR FOR                              
C+    SELECT CLICLAV, CLINOM, CLICEL, CLISEX, CLIEMAIL 
C+     FROM CLIENTES      
C+      ORDER BY CLICLAV  
C/end-exec                
Run Code Online (Sandbox Code Playgroud)

我正在使用 PUB400.com (V7r5) 来学习 RPGLE。

rpg rpgle ibm-midrange

0
推荐指数
1
解决办法
172
查看次数

AS400 上的 ACTGRP 查询

我有一个关于激活组的疑问。

如果我用 DFTACTGRP(*NEW) 声明一个程序,系统会为其创建一个激活组,并在程序结束后销毁该激活组。

假设该程序调用另一个程序,其中激活组定义为 DFTACTGRP(*CALLER)。因此,被调用的程序将使用系统生成的第一个程序的激活组,还是将在其自己的系统生成的新激活组中运行。

任何消除这个疑问的答案都会非常有帮助。

rpg rpgle ibm-midrange

0
推荐指数
1
解决办法
83
查看次数

iSeries DB2 SQL - 使用CASE语句在UDF中更新变量

我正在尝试为DB2创建用户定义的函数,但无法弄清楚.我对t-sql感觉更舒服,这将以十几种方式实现.我需要帮助,因为我收到的所有内容都是神秘的错误消息,告诉我没有有效的令牌或其他类似的令牌.

基本前提是我试图将正常日期转换为整个数据库中使用的日期格式(cyymmdd)这里是伪代码:

Get current time;
If YEAR(current time) > 1999 then 1 else 0;
Run Code Online (Sandbox Code Playgroud)

很简单吧?无法让它发挥作用.这是实际的代码:

DECLARE Cn CHAR ( 1 ) ;
CASE
WHEN YEAR(X) > 1999
THEN SET Cn = 1;
ELSE SET Cn = 0;
Run Code Online (Sandbox Code Playgroud)

还尝试过:

DECLARE Cn CHAR ( 1 ) ;
CASE YEAR(X)
WHEN  > 1999
THEN SET Cn = 1;
ELSE SET Cn = 0;
Run Code Online (Sandbox Code Playgroud)

而那应该是悲惨的失败.

我真的不知道如何只用SQL将3/25/2014转换为1140325.我想我可以在应用程序逻辑中处理这个问题,但这不是我想要的方式.

提前致谢.

sql db2 user-defined-functions case-statement ibm-midrange

-1
推荐指数
1
解决办法
1912
查看次数

如果PARA只有EXIT语句,GO To流程如何表现/工作

例如,什么是输出?

  PROCEDURE DIVISION
    MAINPARA
        DISPLAY "MAIN".
        GO TO PARA1.
        DISPLAY "DISPLAY".
        STOP RUN.

    PARA1.
        EXIT.

    PARA2.
        DISPLAY "I AM IN PARA2"
    ...
Run Code Online (Sandbox Code Playgroud)

它会执行PARA2吗?

我不是一个COBOL程序员,我需要从一个迁移工具/程序,AMXW COBOL理解的代码.目标系统是IBM AS/400.

cobol ibm-midrange

-1
推荐指数
1
解决办法
61
查看次数

如何在固定格式RPG中查询表并使用if条件检查记录?

因此,假设表 ##TAB 有一列 #VALUE,其中包含“SDM”和“LB”作为条目。列大小为 12 个字符。我想使用固定格式 RPG 查询表,并稍后在 IF 条件下进行比较。逻辑很简单,但我不确定语法。

如果它是自由格式,我可以简单地将记录放入游标中,在循环中获取数据,然后在获得匹配的记录时离开。但是,我不确定我们是否可以使用固定格式的 SQL,否则我将不得不做一个链(仍然不知道语法)。

 exec sql                                      
    Declare C1 cursor for                      
      Select #VALUE from ##TAB;         
                                                
  exec sql                                      
    Open C1;                                    
                                                
  Dou sqlcod <> 0;                              
  exec sql                                      
    Fetch C1 INTO :valueRes;                      
                           
    If (valueRes <> userVal); // userVal is what we get from user     
      Leave; //or set some flag to 0 to indicate               
    Endif;                
         
  Enddo;                  
                           
  exec sql                
    Close C1; 
Run Code Online (Sandbox Code Playgroud)

或者我们可以通过子例程来完成,并返回 true/false 或 1/0 来指示是否找到记录。

在发布答案时,请同时包含变量声明。

db2 rpg rpgle ibm-midrange rational-developer-for-i

-1
推荐指数
1
解决办法
366
查看次数

在变量声明或使用 CLEAR 期间,子过程、INZ 中通常首选什么?

假设两种选择都会产生相同的结果,您通常会做出什么选择?为什么?

dcl-proc test_proc ;
   ...
   dcl-s count  int(5) inz ;
   ...
   // use count
end-proc ;
Run Code Online (Sandbox Code Playgroud)

或者

dcl-proc test_proc ;
   ...
   dcl-s count  int(5) ;
   ...
   clear count
   // use count
end-proc ;
Run Code Online (Sandbox Code Playgroud)

另外,由于变量count的范围是局部的,我们是否需要使用它们中的任何一个?

rpg rpgle ibm-midrange

-1
推荐指数
2
解决办法
146
查看次数