标签: ibm-midrange

我正在尝试创建一个as400/Iseries Telnet客户端,但找不到任何文档

我正在尝试创建一个telnet客户端,我可以使用它将绿屏RPGLE应用程序转移到更高级的客户端应用程序.我能够建立一个套接字连接,并且我已经发送默认的"enter"命令来访问登录屏幕,但我不知道从哪里开始解释字段的位置,会话的服务器ID存储在何处,如何发回评论,以及如何识别字段的类型.有没有人知道描述telnet客户端与其服务器之间通信的一些好的文档?我尝试在线查找无济于事.

我正在使用Microsoft Visual Studio 2010(vb.net)编写此代码.

.net telnet visual-studio-2008 ibm-midrange

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

我可以使用sql在AS400中创建"逻辑文件"吗?

我需要创建as400"逻辑文件".

我的应用程序使用jdbc连接到数据库.

是否可以使用sql语句创建"逻辑文件"?

如果是的话,我希望得到一份样本声明.

谢谢

sql db2 jdbc view ibm-midrange

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

AS400:如何知道哪个程序创建文件?

我不是AS400的专家,只知道一些命令,我​​将AS400(iSeries)中的一些文件导出到SQL Server 2005中.

实际上我需要知道哪个RPG程序在库中创建了一个文件.这是因为该文件包含存储在其他AS400库中的其他文件的统计数据.

此屏幕截图显示了STTMVF库中的文件DAT_4DWH(by DSPLIB DAT_4DWH)

在此输入图像描述

所以有一个命令让我知道哪个RPG程序创建了文件STTMVF?

如果是,我需要打开源RPG或CL并尝试了解哪些物理文件用于组成此统计文件.

提前致谢!

sql-server rpg ibm-midrange

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

如何防止用户在文本字段(字符类型)中输入特殊字符(如键盘中不可见的符号)?

如何防止用户在AS400中的文本字段(字符类型)中输入特殊字符(如键盘中不可见的符号)?显然,大多数时候iseries/as400在接受它并将其保存到文件中时没有问题,但有时当数据在下游报告系统中处理时,它会被系统中的不同错误拒绝.有没有办法防止入口点本身?

例如:在客户的地址字段中,最终用户复制粘贴(ctrl + c ctrl + v)来自网页或文档的详细信息,导致垃圾字符或空值的输入,这些存储没有问题但后来导致其他报告应用程序出现问题.

rpg rpgle ibm-midrange

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

DB2/400替代打开游标

我正在运行DB2 for i,V7R2 TR3.

我被告知打开游标会提供很多开销,应该尽可能避免.从我所读到的,使用EXECUTE INTO var1 USING var2是另一种选择,但我不能让它工作.我收到SQL0104错误.

这是我的存储过程:

BEGIN 
DECLARE STMT1 VARCHAR ( 500 ) ;     

SET STMT1 =     'SELECT SUBSTR (''' || TRIM(ITEM) || ''' , ( LENGTH ( TRIM ( PREFIX ) ) + 1 ) , ( 20 - LENGTH ( TRIM ( PREFIX ) ) ) ) ' ||
                'FROM   MYLIB.MYTABLE ' ||
                'WHERE  PREFIX = SUBSTR(''' || TRIM(ITEM) || ''', 0,LENGTH ( TRIM ( PREFIX ) ) + 1 …
Run Code Online (Sandbox Code Playgroud)

db2 db2-400 ibm-midrange

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

iSeries IDB2 - 在存储过程中声明返回结果集的变量

我试图在存储过程中声明并设置变量的值,该变量通过游标返回结果集.我这样做是因为我计划变量来帮助过滤结果.

当我只用光标发表声明时,一切正常.这是代码:

CREATE OR REPLACE PROCEDURE MYLIB.MYTEST()
DYNAMIC RESULT SETS 1
LANGUAGE SQL 
SPECIFIC MYTEST 
NOT DETERMINISTIC 
READS SQL DATA 
CALLED ON NULL INPUT 

BEGIN

DECLARE C1 CURSOR WITH RETURN FOR 
SELECT * FROM SOMELIB.SOMEFILE 
FETCH FIRST 100 ROWS ONLY;
OPEN C1; 
END; 
Run Code Online (Sandbox Code Playgroud)

当我尝试声明并设置变量时,我得到一个错误.这是代码:

CREATE OR REPLACE PROCEDURE MYLIB.MYTEST()
DYNAMIC RESULT SETS 1
LANGUAGE SQL 
SPECIFIC MYTEST 
NOT DETERMINISTIC 
READS SQL DATA 
CALLED ON NULL INPUT 

BEGIN

DECLARE SOMENAME VARCHAR(10);
SET SOMENAME = 'JOHN';

DECLARE C1 CURSOR WITH RETURN FOR …
Run Code Online (Sandbox Code Playgroud)

sql db2 db2-400 ibm-midrange

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

IBM ILE RPG - 清除时间字段

如何清除(重置)定义为类型的字段TIME

我已经尝试MOVEL *BLANKS或者Z-ADD *ZEROS,但我总是得到一个错误.使用*ZEROS编译器时告诉我该字段不是数字.在使用时,MOVEL *BLANKS我得到一个错误,即因子2对此操作无效.

rpgle ibm-midrange

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

在RDi中,如何使用UPDPROD(* YES)运行调试?

在RDi中,

  • 右键点击要调试的程序,
  • 选择“调试或代码覆盖率”
  • 然后“设置服务入口点”

然后在另一个会话中从命令行启动程序。

RDi确认“调试”透视开关。但是,我没有选择使用更新生产文件= *是开始调试的选项,所以我收到了DBGP0003E消息。

通过作业日志检查的根本原因似乎是:

UPDPROD(* NO)时无法打开成员myfile

ibm-midrange rational-developer-for-i

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

SQL插入SQLRPGLE后无法更新文件

美好的一天,

我正在编写一个程序来构建一个报告,我在其中构建SQL语句以将所选记录插入到文件中,然后在该插入之后我想对文件进行简单更新以更改某些记录中的选择字段.

问题是在插入运行后,每当我尝试更新文件时,我都会收到一个记录或文件正在使用错误.

我尝试用sqlrpgle和I/O读取和设置函数以编程方式更新它,我甚至尝试在运行程序后只更新STRSQL中的文件,我都遇到了同样的错误.

我怀疑我没有正确关闭,但我不确定是什么.

代码如下

// Assign SQL Query

    sqlstmt = 'insert into jallib/orhsrpt ('+
              'oacctd, oacmp, oaord, oacust, o8type, ' +
              'o8text, o8date, o8time ) ' +
              'select oacctd, oacmp, oaord, oacust, ' +
              'o8type, o8text, o8date, o8time ' +
              'from r50files.vcohead ' +
              'join r50files.vcopkct ' +
              'on oacmp = o8cmp and oaord = o8ord ' +
              'where oacmp = 1 ' +
              'and o8type not in (' +
              '''C'',''a'',''H'',''E'',''F'', '+
              '''A'',''1'',''N'',''M'') ' +
              'and oacctd = …
Run Code Online (Sandbox Code Playgroud)

sql db2 rpgle ibm-midrange

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

在程序调用后将垃圾值分配给CL变量

我有许多CL程序,这些程序当前正在将文件FTP发送到生产服务器。

我们已经引入了用于测试目的的新iSeries测试服务器,并且这些程序需要从该新服务器上运行。但是,从测试服务器运行时的目标FTP地址应该不同。文件需要发送到相应的测试服务器。

为此,添加了一个简单的程序调用,如下所示:

         PGM        PARM(&FTPERR)                                    

         DCL        VAR(&SUCCES) TYPE(*CHAR) LEN(1)                  
         DCL        VAR(&FTPERR) TYPE(*CHAR) LEN(1)                  
         DCL        VAR(&TARGIP) TYPE(*CHAR) LEN(20) VALUE(' ')      
         DCL        VAR(&ATTEMP) TYPE(*DEC) LEN(2 0) VALUE(0)        

         CALL       PGM(GETFTPRPG) PARM('FTPMRCL' &TARGIP)
Run Code Online (Sandbox Code Playgroud)

从上面可以看出,GETFTPRPG程序是新引入的程序调用,它基于程序名和程序运行所在的服务器检索IP地址。

这很好,但是问题在于程序中声明的其他变量(具体来说,是程序中声明的第一个Decimal变量)正在更改。在上面的示例中,&ATTEMP变量的值更改为04。有人可以建议可能的原因吗?

rpgle ibm-midrange

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